docobj.idl 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397
  1. /*
  2. * Copyright (C) 1999 Paul Quinn
  3. * Copyright (C) 2003 Alexandre Julliard
  4. *
  5. * This library is free software; you can redistribute it and/or
  6. * modify it under the terms of the GNU Lesser General Public
  7. * License as published by the Free Software Foundation; either
  8. * version 2.1 of the License, or (at your option) any later version.
  9. *
  10. * This library is distributed in the hope that it will be useful,
  11. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  13. * Lesser General Public License for more details.
  14. *
  15. * You should have received a copy of the GNU Lesser General Public
  16. * License along with this library; if not, write to the Free Software
  17. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  18. */
  19. import "ocidl.idl";
  20. import "objidl.idl";
  21. import "oleidl.idl";
  22. import "oaidl.idl";
  23. import "servprov.idl";
  24. interface IOleDocumentView;
  25. interface IEnumOleDocumentViews;
  26. /*****************************************************************************
  27. * IOleDocument interface
  28. */
  29. [
  30. object,
  31. uuid(b722bcc5-4e68-101b-a2bc-00aa00404770),
  32. pointer_default(unique)
  33. ]
  34. interface IOleDocument : IUnknown
  35. {
  36. typedef [unique] IOleDocument *LPOLEDOCUMENT;
  37. typedef enum
  38. {
  39. DOCMISC_CANCREATEMULTIPLEVIEWS = 1,
  40. DOCMISC_SUPPORTCOMPLEXRECTANGLES = 2,
  41. DOCMISC_CANTOPENEDIT = 4,
  42. DOCMISC_NOFILESUPPORT = 8
  43. } DOCMISC;
  44. HRESULT CreateView(
  45. [in, unique] IOleInPlaceSite *pIPSite,
  46. [in, unique] IStream *pstm,
  47. [in] DWORD dwReserved,
  48. [out] IOleDocumentView **ppView);
  49. HRESULT GetDocMiscStatus(
  50. [out] DWORD *pdwStatus);
  51. HRESULT EnumViews(
  52. [out] IEnumOleDocumentViews **ppEnum,
  53. [out] IOleDocumentView **ppView);
  54. }
  55. /*****************************************************************************
  56. * IOleDocumentSite interface
  57. */
  58. [
  59. object,
  60. uuid(b722bcc7-4e68-101b-a2bc-00aa00404770),
  61. pointer_default(unique)
  62. ]
  63. interface IOleDocumentSite : IUnknown
  64. {
  65. typedef [unique] IOleDocumentSite *LPOLEDOCUMENTSITE;
  66. HRESULT ActivateMe( [in] IOleDocumentView *pViewToActivate );
  67. }
  68. /*****************************************************************************
  69. * IOleDocumentView interface
  70. */
  71. [
  72. object,
  73. uuid(b722bcc6-4e68-101b-a2bc-00aa00404770),
  74. pointer_default(unique)
  75. ]
  76. interface IOleDocumentView : IUnknown
  77. {
  78. typedef [unique] IOleDocumentView *LPOLEDOCUMENTVIEW;
  79. HRESULT SetInPlaceSite( [in, unique] IOleInPlaceSite *pIPSite );
  80. HRESULT GetInPlaceSite( [out] IOleInPlaceSite **ppIPSite );
  81. HRESULT GetDocument( [out] IUnknown **ppunk );
  82. HRESULT SetRect( [in] LPRECT prcView );
  83. HRESULT GetRect( [out] LPRECT prcView );
  84. HRESULT SetRectComplex(
  85. [in, unique] LPRECT prcView,
  86. [in, unique] LPRECT prcHScroll,
  87. [in, unique] LPRECT prcVScroll,
  88. [in, unique] LPRECT prcSizeBox);
  89. HRESULT Show( [in] BOOL fShow );
  90. HRESULT UIActivate( [in] BOOL fUIActivate );
  91. HRESULT Open();
  92. HRESULT CloseView( [in] DWORD dwReserved );
  93. HRESULT SaveViewState( [in] LPSTREAM pstm );
  94. HRESULT ApplyViewState( [in] LPSTREAM pstm );
  95. HRESULT Clone(
  96. [in] IOleInPlaceSite *pIPSiteNew,
  97. [out] IOleDocumentView **ppViewNew);
  98. }
  99. /*****************************************************************************
  100. * IEnumOleDocumentViews interface
  101. */
  102. [
  103. object,
  104. uuid(b722bcc8-4e68-101b-a2bc-00aa00404770),
  105. pointer_default(unique)
  106. ]
  107. interface IEnumOleDocumentViews : IUnknown
  108. {
  109. typedef [unique] IEnumOleDocumentViews *LPENUMOLEDOCUMENTVIEWS;
  110. [local]
  111. HRESULT Next(
  112. [in] ULONG cViews,
  113. [out] IOleDocumentView **rgpView,
  114. [out] ULONG *pcFetched);
  115. [call_as(Next)]
  116. HRESULT RemoteNext(
  117. [in] ULONG cViews,
  118. [out, size_is(cViews), length_is(*pcFetched)] IOleDocumentView **rgpView,
  119. [out] ULONG *pcFetched);
  120. HRESULT Skip( [in] ULONG cViews );
  121. HRESULT Reset();
  122. HRESULT Clone( [out] IEnumOleDocumentViews **ppEnum );
  123. }
  124. /*****************************************************************************
  125. * IOleCommandTarget interface
  126. */
  127. [
  128. object,
  129. uuid(b722bccb-4e68-101b-a2bc-00aa00404770),
  130. pointer_default(unique)
  131. ]
  132. interface IOleCommandTarget : IUnknown
  133. {
  134. typedef [unique] IOleCommandTarget *LPOLECOMMANDTARGET;
  135. typedef enum
  136. {
  137. OLECMDF_SUPPORTED = 0x1,
  138. OLECMDF_ENABLED = 0x2,
  139. OLECMDF_LATCHED = 0x4,
  140. OLECMDF_NINCHED = 0x8,
  141. OLECMDF_INVISIBLE = 0x10,
  142. OLECMDF_DEFHIDEONCTXTMENU = 0x20
  143. } OLECMDF;
  144. typedef struct _tagOLECMD
  145. {
  146. ULONG cmdID;
  147. DWORD cmdf;
  148. } OLECMD;
  149. typedef struct _tagOLECMDTEXT
  150. {
  151. DWORD cmdtextf;
  152. ULONG cwActual;
  153. ULONG cwBuf;
  154. [size_is(cwBuf)] WCHAR rgwz[];
  155. } OLECMDTEXT;
  156. typedef enum
  157. {
  158. OLECMDTEXTF_NONE = 0,
  159. OLECMDTEXTF_NAME = 1,
  160. OLECMDTEXTF_STATUS = 2
  161. } OLECMDTEXTF;
  162. typedef enum
  163. {
  164. OLECMDEXECOPT_DODEFAULT = 0,
  165. OLECMDEXECOPT_PROMPTUSER = 1,
  166. OLECMDEXECOPT_DONTPROMPTUSER = 2,
  167. OLECMDEXECOPT_SHOWHELP = 3
  168. } OLECMDEXECOPT;
  169. typedef enum OLECMDID
  170. {
  171. OLECMDID_OPEN = 1,
  172. OLECMDID_NEW = 2,
  173. OLECMDID_SAVE = 3,
  174. OLECMDID_SAVEAS = 4,
  175. OLECMDID_SAVECOPYAS = 5,
  176. OLECMDID_PRINT = 6,
  177. OLECMDID_PRINTPREVIEW = 7,
  178. OLECMDID_PAGESETUP = 8,
  179. OLECMDID_SPELL = 9,
  180. OLECMDID_PROPERTIES = 10,
  181. OLECMDID_CUT = 11,
  182. OLECMDID_COPY = 12,
  183. OLECMDID_PASTE = 13,
  184. OLECMDID_PASTESPECIAL = 14,
  185. OLECMDID_UNDO = 15,
  186. OLECMDID_REDO = 16,
  187. OLECMDID_SELECTALL = 17,
  188. OLECMDID_CLEARSELECTION = 18,
  189. OLECMDID_ZOOM = 19,
  190. OLECMDID_GETZOOMRANGE = 20,
  191. OLECMDID_UPDATECOMMANDS = 21,
  192. OLECMDID_REFRESH = 22,
  193. OLECMDID_STOP = 23,
  194. OLECMDID_HIDETOOLBARS = 24,
  195. OLECMDID_SETPROGRESSMAX = 25,
  196. OLECMDID_SETPROGRESSPOS = 26,
  197. OLECMDID_SETPROGRESSTEXT = 27,
  198. OLECMDID_SETTITLE = 28,
  199. OLECMDID_SETDOWNLOADSTATE = 29,
  200. OLECMDID_STOPDOWNLOAD = 30,
  201. OLECMDID_ONTOOLBARACTIVATED = 31,
  202. OLECMDID_FIND = 32,
  203. OLECMDID_DELETE = 33,
  204. OLECMDID_HTTPEQUIV = 34,
  205. OLECMDID_HTTPEQUIV_DONE = 35,
  206. OLECMDID_ENABLE_INTERACTION = 36,
  207. OLECMDID_ONUNLOAD = 37,
  208. OLECMDID_PROPERTYBAG2 = 38,
  209. OLECMDID_PREREFRESH = 39,
  210. /* iexplorer uses ... 44 */
  211. OLECMDID_SHOWSCRIPTERROR = 40,
  212. OLECMDID_SHOWMESSAGE = 41,
  213. OLECMDID_SHOWFIND = 42,
  214. OLECMDID_SHOWPAGESETUP = 43,
  215. OLECMDID_SHOWPRINT = 44,
  216. OLECMDID_CLOSE = 45,
  217. OLECMDID_ALLOWUILESSSAVEAS = 46,
  218. OLECMDID_DONTDOWNLOADCSS = 47,
  219. OLECMDID_UPDATEPAGESTATUS = 48,
  220. OLECMDID_PRINT2 = 49,
  221. OLECMDID_PRINTPREVIEW2 = 50,
  222. OLECMDID_SETPRINTTEMPLATE = 51,
  223. OLECMDID_GETPRINTTEMPLATE = 52
  224. } OLECMDID;
  225. HRESULT QueryStatus(
  226. [in, unique] const GUID *pguidCmdGroup,
  227. [in] ULONG cCmds,
  228. [in, out, size_is(cCmds)] OLECMD prgCmds[],
  229. [in, out, unique] OLECMDTEXT *pCmdText);
  230. HRESULT Exec(
  231. [in, unique] const GUID *pguidCmdGroup,
  232. [in] DWORD nCmdID,
  233. [in] DWORD nCmdexecopt,
  234. [in, unique] VARIANT *pvaIn,
  235. [in, out, unique] VARIANT *pvaOut);
  236. }
  237. /*****************************************************************************
  238. * IContinueCallback interface
  239. */
  240. [
  241. object,
  242. uuid(b722bcca-4e68-101b-a2bc-00aa00404770),
  243. pointer_default(unique)
  244. ]
  245. interface IContinueCallback : IUnknown
  246. {
  247. typedef [unique] IContinueCallback *LPCONTINUECALLBACK;
  248. HRESULT FContinue();
  249. HRESULT FContinuePrinting(
  250. [in] LONG nCntPrinted,
  251. [in] LONG nCurPage,
  252. [in, unique] WCHAR *pwszPrintStatus);
  253. }
  254. /*****************************************************************************
  255. * IPrint interface
  256. */
  257. [
  258. object,
  259. uuid(b722bcc9-4e68-101b-a2bc-00aa00404770),
  260. pointer_default(unique)
  261. ]
  262. interface IPrint : IUnknown
  263. {
  264. typedef [unique] IPrint *LPPRINT;
  265. typedef enum
  266. {
  267. PRINTFLAG_MAYBOTHERUSER = 1,
  268. PRINTFLAG_PROMPTUSER = 2,
  269. PRINTFLAG_USERMAYCHANGEPRINTER = 4,
  270. PRINTFLAG_RECOMPOSETODEVICE = 8,
  271. PRINTFLAG_DONTACTUALLYPRINT = 16,
  272. PRINTFLAG_FORCEPROPERTIES = 32,
  273. PRINTFLAG_PRINTTOFILE = 64
  274. } PRINTFLAG;
  275. typedef struct tagPAGERANGE
  276. {
  277. LONG nFromPage;
  278. LONG nToPage;
  279. } PAGERANGE;
  280. typedef struct tagPAGESET
  281. {
  282. ULONG cbStruct;
  283. BOOL fOddPages;
  284. BOOL fEvenPages;
  285. ULONG cPageRange;
  286. [size_is(cPageRange)] PAGERANGE rgPages[];
  287. } PAGESET;
  288. HRESULT SetInitialPageNum(
  289. [in] LONG nFirstPage);
  290. HRESULT GetPageInfo(
  291. [out] LONG *pnFirstPage,
  292. [out] LONG *pcPages);
  293. [local]
  294. HRESULT Print(
  295. [in] DWORD grfFlags,
  296. [in, out] DVTARGETDEVICE **pptd,
  297. [in, out] PAGESET **ppPageSet,
  298. [in, out, unique] STGMEDIUM *pstgmOptions,
  299. [in] IContinueCallback *pcallback,
  300. [in] LONG nFirstPage,
  301. [out] LONG *pcPagesPrinted,
  302. [out] LONG *pnLastPage);
  303. [call_as(Print)]
  304. HRESULT RemotePrint(
  305. [in] DWORD grfFlags,
  306. [in, out] DVTARGETDEVICE **pptd,
  307. [in, out] PAGESET **pppageset,
  308. [in, out, unique] RemSTGMEDIUM *pstgmOptions,
  309. [in] IContinueCallback *pcallback,
  310. [in] LONG nFirstPage,
  311. [out] LONG *pcPagesPrinted,
  312. [out] LONG *pnLastPage);
  313. }
  314. cpp_quote("#define OLECMDERR_E_FIRST (OLE_E_LAST+1)")
  315. cpp_quote("#define OLECMDERR_E_NOTSUPPORTED (OLECMDERR_E_FIRST)")
  316. cpp_quote("#define OLECMDERR_E_DISABLED (OLECMDERR_E_FIRST+1)")
  317. cpp_quote("#define OLECMDERR_E_NOHELP (OLECMDERR_E_FIRST+2)")
  318. cpp_quote("#define OLECMDERR_E_CANCELED (OLECMDERR_E_FIRST+3)")
  319. cpp_quote("#define OLECMDERR_E_UNKNOWNGROUP (OLECMDERR_E_FIRST+4)")
  320. cpp_quote("#define MSOCMDERR_E_FIRST OLECMDERR_E_FIRST")
  321. cpp_quote("#define MSOCMDERR_E_NOTSUPPORTED OLECMDERR_E_NOTSUPPORTED")
  322. cpp_quote("#define MSOCMDERR_E_DISABLED OLECMDERR_E_DISABLED")
  323. cpp_quote("#define MSOCMDERR_E_NOHELP OLECMDERR_E_NOHELP")
  324. cpp_quote("#define MSOCMDERR_E_CANCELED OLECMDERR_E_CANCELED")
  325. cpp_quote("#define MSOCMDERR_E_UNKNOWNGROUP OLECMDERR_E_UNKNOWNGROUP")
  326. cpp_quote("#define LPMSODOCUMENT LPOLEDOCUMENT")
  327. cpp_quote("#define LPMSODOCUMENTSITE LPOLEDOCUMENTSITE")
  328. cpp_quote("#define LPMSOVIEW LPOLEDOCUMENTVIEW")
  329. cpp_quote("#define LPENUMMSOVIEW LPENUMOLEDOCUMENTVIEWS")
  330. cpp_quote("#define LPMSOCOMMANDTARGET LPOLECOMMANDTARGET")
  331. cpp_quote("#define IID_IMsoDocument IID_IOleDocument")
  332. cpp_quote("#define IID_IMsoDocumentSite IID_IOleDocumentSite")
  333. cpp_quote("#define IID_IMsoView IID_IOleDocumentView")
  334. cpp_quote("#define IID_IEnumMsoView IID_IEnumOleDocumentViews")
  335. cpp_quote("#define IID_IMsoCommandTarget IID_IOleCommandTarget")