ole.h 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361
  1. /**
  2. * This file is part of the mingw-w64 runtime package.
  3. * No warranty is given; refer to the file DISCLAIMER within this package.
  4. */
  5. #include <winapifamily.h>
  6. #ifndef _INC_OLE
  7. #define _INC_OLE
  8. #ifdef __cplusplus
  9. extern "C" {
  10. #endif
  11. #ifndef WINAPI
  12. #define WINAPI PASCAL
  13. #define CALLBACK PASCAL
  14. #define LPCSTR LPSTR
  15. #define LRESULT LONG_PTR
  16. #define HGLOBAL HANDLE
  17. #endif
  18. #ifdef STRICT
  19. #define OLE_LPCSTR LPCSTR
  20. #define OLE_CONST const
  21. #else
  22. #define OLE_LPCSTR LPSTR
  23. #define OLE_CONST
  24. #endif
  25. #define LRESULT LONG_PTR
  26. #define HGLOBAL HANDLE
  27. #define OT_LINK __MSABI_LONG(1)
  28. #define OT_EMBEDDED __MSABI_LONG(2)
  29. #define OT_STATIC __MSABI_LONG(3)
  30. #define OLEVERB_PRIMARY 0
  31. typedef struct _OLETARGETDEVICE {
  32. USHORT otdDeviceNameOffset;
  33. USHORT otdDriverNameOffset;
  34. USHORT otdPortNameOffset;
  35. USHORT otdExtDevmodeOffset;
  36. USHORT otdExtDevmodeSize;
  37. USHORT otdEnvironmentOffset;
  38. USHORT otdEnvironmentSize;
  39. BYTE otdData[1];
  40. } OLETARGETDEVICE;
  41. typedef OLETARGETDEVICE *LPOLETARGETDEVICE;
  42. #define OF_SET 0x1
  43. #define OF_GET 0x2
  44. #define OF_HANDLER 0x4
  45. typedef enum {
  46. OLE_OK,
  47. OLE_WAIT_FOR_RELEASE,
  48. OLE_BUSY,
  49. OLE_ERROR_PROTECT_ONLY,
  50. OLE_ERROR_MEMORY,
  51. OLE_ERROR_STREAM,
  52. OLE_ERROR_STATIC,
  53. OLE_ERROR_BLANK,
  54. OLE_ERROR_DRAW,
  55. OLE_ERROR_METAFILE,
  56. OLE_ERROR_ABORT,
  57. OLE_ERROR_CLIPBOARD,
  58. OLE_ERROR_FORMAT,
  59. OLE_ERROR_OBJECT,
  60. OLE_ERROR_OPTION,
  61. OLE_ERROR_PROTOCOL,
  62. OLE_ERROR_ADDRESS,
  63. OLE_ERROR_NOT_EQUAL,
  64. OLE_ERROR_HANDLE,
  65. OLE_ERROR_GENERIC,
  66. OLE_ERROR_CLASS,
  67. OLE_ERROR_SYNTAX,
  68. OLE_ERROR_DATATYPE,
  69. OLE_ERROR_PALETTE,
  70. OLE_ERROR_NOT_LINK,
  71. OLE_ERROR_NOT_EMPTY,
  72. OLE_ERROR_SIZE,
  73. OLE_ERROR_DRIVE,
  74. OLE_ERROR_NETWORK,
  75. OLE_ERROR_NAME,
  76. OLE_ERROR_TEMPLATE,
  77. OLE_ERROR_NEW,
  78. OLE_ERROR_EDIT,
  79. OLE_ERROR_OPEN,
  80. OLE_ERROR_NOT_OPEN,
  81. OLE_ERROR_LAUNCH,
  82. OLE_ERROR_COMM,
  83. OLE_ERROR_TERMINATE,
  84. OLE_ERROR_COMMAND,
  85. OLE_ERROR_SHOW,
  86. OLE_ERROR_DOVERB,
  87. OLE_ERROR_ADVISE_NATIVE,
  88. OLE_ERROR_ADVISE_PICT,
  89. OLE_ERROR_ADVISE_RENAME,
  90. OLE_ERROR_POKE_NATIVE,
  91. OLE_ERROR_REQUEST_NATIVE,
  92. OLE_ERROR_REQUEST_PICT,
  93. OLE_ERROR_SERVER_BLOCKED,
  94. OLE_ERROR_REGISTRATION,
  95. OLE_ERROR_ALREADY_REGISTERED,
  96. OLE_ERROR_TASK,
  97. OLE_ERROR_OUTOFDATE,
  98. OLE_ERROR_CANT_UPDATE_CLIENT,
  99. OLE_ERROR_UPDATE,
  100. OLE_ERROR_SETDATA_FORMAT,
  101. OLE_ERROR_STATIC_FROM_OTHER_OS,
  102. OLE_ERROR_FILE_VER,
  103. OLE_WARN_DELETE_DATA = 1000
  104. } OLESTATUS;
  105. typedef enum {
  106. OLE_CHANGED,
  107. OLE_SAVED,
  108. OLE_CLOSED,
  109. OLE_RENAMED,
  110. OLE_QUERY_PAINT,
  111. OLE_RELEASE,
  112. OLE_QUERY_RETRY
  113. } OLE_NOTIFICATION;
  114. typedef enum {
  115. OLE_NONE,
  116. OLE_DELETE,
  117. OLE_LNKPASTE,
  118. OLE_EMBPASTE,
  119. OLE_SHOW,
  120. OLE_RUN,
  121. OLE_ACTIVATE,
  122. OLE_UPDATE,
  123. OLE_CLOSE,
  124. OLE_RECONNECT,
  125. OLE_SETUPDATEOPTIONS,
  126. OLE_SERVERUNLAUNCH,
  127. OLE_LOADFROMSTREAM,
  128. OLE_SETDATA,
  129. OLE_REQUESTDATA,
  130. OLE_OTHER,
  131. OLE_CREATE,
  132. OLE_CREATEFROMTEMPLATE,
  133. OLE_CREATELINKFROMFILE,
  134. OLE_COPYFROMLNK,
  135. OLE_CREATEFROMFILE,
  136. OLE_CREATEINVISIBLE
  137. } OLE_RELEASE_METHOD;
  138. typedef enum {
  139. olerender_none,
  140. olerender_draw,
  141. olerender_format
  142. } OLEOPT_RENDER;
  143. typedef WORD OLECLIPFORMAT;
  144. typedef enum {
  145. oleupdate_always,
  146. oleupdate_onsave,
  147. #ifdef OLE_INTERNAL
  148. oleupdate_oncall,
  149. oleupdate_onclose
  150. #else
  151. oleupdate_oncall
  152. #endif
  153. } OLEOPT_UPDATE;
  154. typedef HANDLE HOBJECT;
  155. typedef LONG_PTR LHSERVER;
  156. typedef LONG_PTR LHCLIENTDOC;
  157. typedef LONG_PTR LHSERVERDOC;
  158. typedef struct _OLEOBJECT *LPOLEOBJECT;
  159. typedef struct _OLESTREAM *LPOLESTREAM;
  160. typedef struct _OLECLIENT *LPOLECLIENT;
  161. typedef struct _OLEOBJECTVTBL {
  162. void *(CALLBACK *QueryProtocol) (LPOLEOBJECT, OLE_LPCSTR);
  163. OLESTATUS (CALLBACK *Release) (LPOLEOBJECT);
  164. OLESTATUS (CALLBACK *Show) (LPOLEOBJECT, WINBOOL);
  165. OLESTATUS (CALLBACK *DoVerb) (LPOLEOBJECT, UINT, WINBOOL, WINBOOL);
  166. OLESTATUS (CALLBACK *GetData) (LPOLEOBJECT, OLECLIPFORMAT, HANDLE *);
  167. OLESTATUS (CALLBACK *SetData) (LPOLEOBJECT, OLECLIPFORMAT, HANDLE);
  168. OLESTATUS (CALLBACK *SetTargetDevice) (LPOLEOBJECT, HGLOBAL);
  169. OLESTATUS (CALLBACK *SetBounds) (LPOLEOBJECT, OLE_CONST RECT *);
  170. OLECLIPFORMAT (CALLBACK *EnumFormats) (LPOLEOBJECT, OLECLIPFORMAT);
  171. OLESTATUS (CALLBACK *SetColorScheme) (LPOLEOBJECT, OLE_CONST LOGPALETTE *);
  172. #ifndef SERVERONLY
  173. OLESTATUS (CALLBACK *Delete) (LPOLEOBJECT);
  174. OLESTATUS (CALLBACK *SetHostNames) (LPOLEOBJECT, OLE_LPCSTR, OLE_LPCSTR);
  175. OLESTATUS (CALLBACK *SaveToStream) (LPOLEOBJECT, LPOLESTREAM);
  176. OLESTATUS (CALLBACK *Clone) (LPOLEOBJECT, LPOLECLIENT, LHCLIENTDOC, OLE_LPCSTR, LPOLEOBJECT *);
  177. OLESTATUS (CALLBACK *CopyFromLink) (LPOLEOBJECT, LPOLECLIENT, LHCLIENTDOC, OLE_LPCSTR, LPOLEOBJECT *);
  178. OLESTATUS (CALLBACK *Equal) (LPOLEOBJECT, LPOLEOBJECT);
  179. OLESTATUS (CALLBACK *CopyToClipboard) (LPOLEOBJECT);
  180. OLESTATUS (CALLBACK *Draw) (LPOLEOBJECT, HDC, OLE_CONST RECT *, OLE_CONST RECT *, HDC);
  181. OLESTATUS (CALLBACK *Activate) (LPOLEOBJECT, UINT, WINBOOL, WINBOOL, HWND, OLE_CONST RECT *);
  182. OLESTATUS (CALLBACK *Execute) (LPOLEOBJECT, HGLOBAL, UINT);
  183. OLESTATUS (CALLBACK *Close) (LPOLEOBJECT);
  184. OLESTATUS (CALLBACK *Update) (LPOLEOBJECT);
  185. OLESTATUS (CALLBACK *Reconnect) (LPOLEOBJECT);
  186. OLESTATUS (CALLBACK *ObjectConvert) (LPOLEOBJECT, OLE_LPCSTR, LPOLECLIENT, LHCLIENTDOC, OLE_LPCSTR, LPOLEOBJECT *);
  187. OLESTATUS (CALLBACK *GetLinkUpdateOptions) (LPOLEOBJECT, OLEOPT_UPDATE *);
  188. OLESTATUS (CALLBACK *SetLinkUpdateOptions) (LPOLEOBJECT, OLEOPT_UPDATE);
  189. OLESTATUS (CALLBACK *Rename) (LPOLEOBJECT, OLE_LPCSTR);
  190. OLESTATUS (CALLBACK *QueryName) (LPOLEOBJECT, LPSTR, UINT *);
  191. OLESTATUS (CALLBACK *QueryType) (LPOLEOBJECT, LONG *);
  192. OLESTATUS (CALLBACK *QueryBounds) (LPOLEOBJECT, RECT *);
  193. OLESTATUS (CALLBACK *QuerySize) (LPOLEOBJECT, DWORD *);
  194. OLESTATUS (CALLBACK *QueryOpen) (LPOLEOBJECT);
  195. OLESTATUS (CALLBACK *QueryOutOfDate) (LPOLEOBJECT);
  196. OLESTATUS (CALLBACK *QueryReleaseStatus) (LPOLEOBJECT);
  197. OLESTATUS (CALLBACK *QueryReleaseError) (LPOLEOBJECT);
  198. OLE_RELEASE_METHOD (CALLBACK *QueryReleaseMethod) (LPOLEOBJECT);
  199. OLESTATUS (CALLBACK *RequestData) (LPOLEOBJECT, OLECLIPFORMAT);
  200. OLESTATUS (CALLBACK *ObjectLong) (LPOLEOBJECT, UINT, LONG *);
  201. OLESTATUS (CALLBACK *ChangeData) (LPOLEOBJECT, HANDLE, LPOLECLIENT, WINBOOL);
  202. #endif
  203. } OLEOBJECTVTBL;
  204. typedef OLEOBJECTVTBL *LPOLEOBJECTVTBL;
  205. #ifndef OLE_INTERNAL
  206. typedef struct _OLEOBJECT {
  207. LPOLEOBJECTVTBL lpvtbl;
  208. } OLEOBJECT;
  209. #endif
  210. typedef struct _OLECLIENTVTBL {
  211. int (CALLBACK *CallBack) (LPOLECLIENT, OLE_NOTIFICATION, LPOLEOBJECT);
  212. } OLECLIENTVTBL;
  213. typedef OLECLIENTVTBL *LPOLECLIENTVTBL;
  214. typedef struct _OLECLIENT {
  215. LPOLECLIENTVTBL lpvtbl;
  216. } OLECLIENT;
  217. typedef struct _OLESTREAMVTBL {
  218. DWORD (CALLBACK *Get) (LPOLESTREAM, void *, DWORD);
  219. DWORD (CALLBACK *Put) (LPOLESTREAM, OLE_CONST void *, DWORD);
  220. } OLESTREAMVTBL;
  221. typedef OLESTREAMVTBL *LPOLESTREAMVTBL;
  222. typedef struct _OLESTREAM {
  223. LPOLESTREAMVTBL lpstbl;
  224. } OLESTREAM;
  225. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  226. OLESTATUS WINAPI OleDelete (LPOLEOBJECT);
  227. OLESTATUS WINAPI OleRelease (LPOLEOBJECT);
  228. OLESTATUS WINAPI OleSaveToStream (LPOLEOBJECT, LPOLESTREAM);
  229. OLESTATUS WINAPI OleEqual (LPOLEOBJECT, LPOLEOBJECT);
  230. OLESTATUS WINAPI OleCopyToClipboard (LPOLEOBJECT);
  231. OLESTATUS WINAPI OleSetHostNames (LPOLEOBJECT, LPCSTR, LPCSTR);
  232. OLESTATUS WINAPI OleSetTargetDevice (LPOLEOBJECT, HGLOBAL);
  233. OLESTATUS WINAPI OleSetBounds (LPOLEOBJECT, const RECT *);
  234. OLESTATUS WINAPI OleSetColorScheme (LPOLEOBJECT, const LOGPALETTE *);
  235. OLESTATUS WINAPI OleQueryBounds (LPOLEOBJECT, RECT *);
  236. OLESTATUS WINAPI OleQuerySize (LPOLEOBJECT, DWORD *);
  237. OLESTATUS WINAPI OleDraw (LPOLEOBJECT, HDC, const RECT *, const RECT *, HDC);
  238. OLESTATUS WINAPI OleQueryOpen (LPOLEOBJECT);
  239. OLESTATUS WINAPI OleActivate (LPOLEOBJECT, UINT, WINBOOL, WINBOOL, HWND, const RECT *);
  240. OLESTATUS WINAPI OleExecute (LPOLEOBJECT, HGLOBAL, UINT);
  241. OLESTATUS WINAPI OleClose (LPOLEOBJECT);
  242. OLESTATUS WINAPI OleUpdate (LPOLEOBJECT);
  243. OLESTATUS WINAPI OleReconnect (LPOLEOBJECT);
  244. OLESTATUS WINAPI OleGetLinkUpdateOptions (LPOLEOBJECT, OLEOPT_UPDATE *);
  245. OLESTATUS WINAPI OleSetLinkUpdateOptions (LPOLEOBJECT, OLEOPT_UPDATE);
  246. void *WINAPI OleQueryProtocol (LPOLEOBJECT, LPCSTR);
  247. OLESTATUS WINAPI OleQueryReleaseStatus (LPOLEOBJECT);
  248. OLESTATUS WINAPI OleQueryReleaseError (LPOLEOBJECT);
  249. OLE_RELEASE_METHOD WINAPI OleQueryReleaseMethod (LPOLEOBJECT);
  250. OLESTATUS WINAPI OleQueryType (LPOLEOBJECT, LONG *);
  251. DWORD WINAPI OleQueryClientVersion (void);
  252. DWORD WINAPI OleQueryServerVersion (void);
  253. OLECLIPFORMAT WINAPI OleEnumFormats (LPOLEOBJECT, OLECLIPFORMAT);
  254. OLESTATUS WINAPI OleGetData (LPOLEOBJECT, OLECLIPFORMAT, HANDLE *);
  255. OLESTATUS WINAPI OleSetData (LPOLEOBJECT, OLECLIPFORMAT, HANDLE);
  256. OLESTATUS WINAPI OleQueryOutOfDate (LPOLEOBJECT);
  257. OLESTATUS WINAPI OleRequestData (LPOLEOBJECT, OLECLIPFORMAT);
  258. OLESTATUS WINAPI OleQueryLinkFromClip (LPCSTR, OLEOPT_RENDER, OLECLIPFORMAT);
  259. OLESTATUS WINAPI OleQueryCreateFromClip (LPCSTR, OLEOPT_RENDER, OLECLIPFORMAT);
  260. OLESTATUS WINAPI OleCreateFromClip (LPCSTR, LPOLECLIENT, LHCLIENTDOC, LPCSTR, LPOLEOBJECT *, OLEOPT_RENDER, OLECLIPFORMAT);
  261. OLESTATUS WINAPI OleCreateLinkFromClip (LPCSTR, LPOLECLIENT, LHCLIENTDOC, LPCSTR, LPOLEOBJECT *, OLEOPT_RENDER, OLECLIPFORMAT);
  262. OLESTATUS WINAPI OleCreateFromFile (LPCSTR, LPOLECLIENT, LPCSTR, LPCSTR, LHCLIENTDOC, LPCSTR, LPOLEOBJECT *, OLEOPT_RENDER, OLECLIPFORMAT);
  263. OLESTATUS WINAPI OleCreateLinkFromFile (LPCSTR, LPOLECLIENT, LPCSTR, LPCSTR, LPCSTR, LHCLIENTDOC, LPCSTR, LPOLEOBJECT *, OLEOPT_RENDER, OLECLIPFORMAT);
  264. OLESTATUS WINAPI OleLoadFromStream (LPOLESTREAM, LPCSTR, LPOLECLIENT, LHCLIENTDOC, LPCSTR, LPOLEOBJECT *);
  265. OLESTATUS WINAPI OleCreate (LPCSTR, LPOLECLIENT, LPCSTR, LHCLIENTDOC, LPCSTR, LPOLEOBJECT *, OLEOPT_RENDER, OLECLIPFORMAT);
  266. OLESTATUS WINAPI OleCreateInvisible (LPCSTR, LPOLECLIENT, LPCSTR, LHCLIENTDOC, LPCSTR, LPOLEOBJECT *, OLEOPT_RENDER, OLECLIPFORMAT, WINBOOL);
  267. OLESTATUS WINAPI OleCreateFromTemplate (LPCSTR, LPOLECLIENT, LPCSTR, LHCLIENTDOC, LPCSTR, LPOLEOBJECT *, OLEOPT_RENDER, OLECLIPFORMAT);
  268. OLESTATUS WINAPI OleClone (LPOLEOBJECT, LPOLECLIENT, LHCLIENTDOC, LPCSTR, LPOLEOBJECT *);
  269. OLESTATUS WINAPI OleCopyFromLink (LPOLEOBJECT, LPCSTR, LPOLECLIENT, LHCLIENTDOC, LPCSTR, LPOLEOBJECT *);
  270. OLESTATUS WINAPI OleObjectConvert (LPOLEOBJECT, LPCSTR, LPOLECLIENT, LHCLIENTDOC, LPCSTR, LPOLEOBJECT *);
  271. OLESTATUS WINAPI OleRename (LPOLEOBJECT, LPCSTR);
  272. OLESTATUS WINAPI OleQueryName (LPOLEOBJECT lpobj, LPSTR lpBuf, UINT *lpcbBuf);
  273. OLESTATUS WINAPI OleRevokeObject (LPOLECLIENT);
  274. WINBOOL WINAPI OleIsDcMeta (HDC);
  275. OLESTATUS WINAPI OleRegisterClientDoc (LPCSTR, LPCSTR, LONG, LHCLIENTDOC *);
  276. OLESTATUS WINAPI OleRevokeClientDoc (LHCLIENTDOC);
  277. OLESTATUS WINAPI OleRenameClientDoc (LHCLIENTDOC, LPCSTR);
  278. OLESTATUS WINAPI OleRevertClientDoc (LHCLIENTDOC);
  279. OLESTATUS WINAPI OleSavedClientDoc (LHCLIENTDOC);
  280. OLESTATUS WINAPI OleEnumObjects (LHCLIENTDOC, LPOLEOBJECT *);
  281. typedef enum {
  282. OLE_SERVER_MULTI,
  283. OLE_SERVER_SINGLE
  284. } OLE_SERVER_USE;
  285. typedef struct _OLESERVER *LPOLESERVER;
  286. typedef struct _OLESERVERDOC *LPOLESERVERDOC;
  287. OLESTATUS WINAPI OleRegisterServer (LPCSTR, LPOLESERVER, LHSERVER *, HINSTANCE, OLE_SERVER_USE);
  288. OLESTATUS WINAPI OleRevokeServer (LHSERVER);
  289. OLESTATUS WINAPI OleBlockServer (LHSERVER);
  290. OLESTATUS WINAPI OleUnblockServer (LHSERVER, WINBOOL *);
  291. OLESTATUS WINAPI OleLockServer (LPOLEOBJECT, LHSERVER *);
  292. OLESTATUS WINAPI OleUnlockServer (LHSERVER);
  293. OLESTATUS WINAPI OleRegisterServerDoc (LHSERVER, LPCSTR, LPOLESERVERDOC, LHSERVERDOC *);
  294. OLESTATUS WINAPI OleRevokeServerDoc (LHSERVERDOC);
  295. OLESTATUS WINAPI OleRenameServerDoc (LHSERVERDOC, LPCSTR);
  296. OLESTATUS WINAPI OleRevertServerDoc (LHSERVERDOC);
  297. OLESTATUS WINAPI OleSavedServerDoc (LHSERVERDOC);
  298. #endif
  299. typedef struct _OLESERVERVTBL {
  300. OLESTATUS (CALLBACK *Open) (LPOLESERVER, LHSERVERDOC, OLE_LPCSTR, LPOLESERVERDOC *);
  301. OLESTATUS (CALLBACK *Create) (LPOLESERVER, LHSERVERDOC, OLE_LPCSTR, OLE_LPCSTR, LPOLESERVERDOC *);
  302. OLESTATUS (CALLBACK *CreateFromTemplate) (LPOLESERVER, LHSERVERDOC, OLE_LPCSTR, OLE_LPCSTR, OLE_LPCSTR, LPOLESERVERDOC *);
  303. OLESTATUS (CALLBACK *Edit) (LPOLESERVER, LHSERVERDOC, OLE_LPCSTR, OLE_LPCSTR, LPOLESERVERDOC *);
  304. _Analysis_noreturn_ OLESTATUS (CALLBACK *Exit) (LPOLESERVER);
  305. OLESTATUS (CALLBACK *Release) (LPOLESERVER);
  306. OLESTATUS (CALLBACK *Execute) (LPOLESERVER, HGLOBAL);
  307. } OLESERVERVTBL;
  308. typedef OLESERVERVTBL *LPOLESERVERVTBL;
  309. typedef struct _OLESERVER {
  310. LPOLESERVERVTBL lpvtbl;
  311. } OLESERVER;
  312. typedef struct _OLESERVERDOCVTBL {
  313. OLESTATUS (CALLBACK *Save) (LPOLESERVERDOC);
  314. OLESTATUS (CALLBACK *Close) (LPOLESERVERDOC);
  315. OLESTATUS (CALLBACK *SetHostNames) (LPOLESERVERDOC, OLE_LPCSTR, OLE_LPCSTR);
  316. OLESTATUS (CALLBACK *SetDocDimensions) (LPOLESERVERDOC, OLE_CONST RECT *);
  317. OLESTATUS (CALLBACK *GetObject) (LPOLESERVERDOC, OLE_LPCSTR, LPOLEOBJECT *, LPOLECLIENT);
  318. OLESTATUS (CALLBACK *Release) (LPOLESERVERDOC);
  319. OLESTATUS (CALLBACK *SetColorScheme) (LPOLESERVERDOC, OLE_CONST LOGPALETTE *);
  320. OLESTATUS (CALLBACK *Execute) (LPOLESERVERDOC, HGLOBAL);
  321. } OLESERVERDOCVTBL;
  322. typedef OLESERVERDOCVTBL *LPOLESERVERDOCVTBL;
  323. typedef struct _OLESERVERDOC {
  324. LPOLESERVERDOCVTBL lpvtbl;
  325. } OLESERVERDOC;
  326. #ifdef __cplusplus
  327. }
  328. #endif
  329. #endif