⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ole.h

📁 c++编程宝典源码及Quincy99编译器 是《标准C++编程宝典》电子工业出版社的光盘
💻 H
字号:
#ifndef _OLE_H#define _OLE_H#ifdef __cplusplusextern "C" {#endif#ifdef STRICT#define OLE_LPCSTR LPCSTR#define OLE_CONST const#else#define OLE_LPCSTR LPSTR#define OLE_CONST#endif#define LRESULT LONG#define HGLOBAL HANDLE#define OT_LINK 1L#define OT_EMBEDDED 2L#define OT_STATIC 3L#define OLEVERB_PRIMARY 0#define OF_SET 1#define OF_GET 2#define OF_HANDLER 4typedef struct _OLETARGETDEVICE {	USHORT otdDeviceNameOffset;	USHORT otdDriverNameOffset;	USHORT otdPortNameOffset;	USHORT otdExtDevmodeOffset;	USHORT otdExtDevmodeSize;	USHORT otdEnvironmentOffset;	USHORT otdEnvironmentSize;	BYTE otdData[1];} OLETARGETDEVICE;typedef OLETARGETDEVICE *LPOLETARGETDEVICE;typedef enum {OLE_OK,OLE_WAIT_FOR_RELEASE,OLE_BUSY,OLE_ERROR_PROTECT_ONLY,OLE_ERROR_MEMORY,OLE_ERROR_STREAM,OLE_ERROR_STATIC,OLE_ERROR_BLANK,OLE_ERROR_DRAW,OLE_ERROR_METAFILE,OLE_ERROR_ABORT,OLE_ERROR_CLIPBOARD,OLE_ERROR_FORMAT,OLE_ERROR_OBJECT,OLE_ERROR_OPTION,OLE_ERROR_PROTOCOL,OLE_ERROR_ADDRESS,OLE_ERROR_NOT_EQUAL,OLE_ERROR_HANDLE,OLE_ERROR_GENERIC,OLE_ERROR_CLASS,OLE_ERROR_SYNTAX,OLE_ERROR_DATATYPE,OLE_ERROR_PALETTE,OLE_ERROR_NOT_LINK,OLE_ERROR_NOT_EMPTY,OLE_ERROR_SIZE,OLE_ERROR_DRIVE,OLE_ERROR_NETWORK,OLE_ERROR_NAME,OLE_ERROR_TEMPLATE,OLE_ERROR_NEW,OLE_ERROR_EDIT,OLE_ERROR_OPEN,OLE_ERROR_NOT_OPEN,OLE_ERROR_LAUNCH,OLE_ERROR_COMM,OLE_ERROR_TERMINATE,OLE_ERROR_COMMAND,OLE_ERROR_SHOW,OLE_ERROR_DOVERB,OLE_ERROR_ADVISE_NATIVE,OLE_ERROR_ADVISE_PICT,OLE_ERROR_ADVISE_RENAME,OLE_ERROR_POKE_NATIVE,OLE_ERROR_REQUEST_NATIVE,OLE_ERROR_REQUEST_PICT,OLE_ERROR_SERVER_BLOCKED,OLE_ERROR_REGISTRATION,OLE_ERROR_ALREADY_REGISTERED,OLE_ERROR_TASK,OLE_ERROR_OUTOFDATE,OLE_ERROR_CANT_UPDATE_CLIENT,OLE_ERROR_UPDATE,OLE_ERROR_SETDATA_FORMAT,OLE_ERROR_STATIC_FROM_OTHER_OS,OLE_ERROR_FILE_VER,OLE_WARN_DELETE_DATA = 1000} OLESTATUS;typedef enum {	OLE_CHANGED,	OLE_SAVED,	OLE_CLOSED,	OLE_RENAMED,	OLE_QUERY_PAINT,	OLE_RELEASE,	OLE_QUERY_RETRY} OLE_NOTIFICATION;typedef enum {	OLE_NONE,	OLE_DELETE,	OLE_LNKPASTE,	OLE_EMBPASTE,	OLE_SHOW,	OLE_RUN,	OLE_ACTIVATE,	OLE_UPDATE,	OLE_CLOSE,	OLE_RECONNECT,	OLE_SETUPDATEOPTIONS,	OLE_SERVERUNLAUNCH,	OLE_LOADFROMSTREAM,	OLE_SETDATA,	OLE_REQUESTDATA,	OLE_OTHER,	OLE_CREATE,	OLE_CREATEFROMTEMPLATE,	OLE_CREATELINKFROMFILE,	OLE_COPYFROMLNK,	OLE_CREATEFROMFILE,	OLE_CREATEINVISIBLE} OLE_RELEASE_METHOD;typedef enum {	olerender_none,	olerender_draw,	olerender_format	} OLEOPT_RENDER;typedef WORD OLECLIPFORMAT;typedef enum {	oleupdate_always,	oleupdate_onsave,#ifdef OLE_INTERNAL	oleupdate_oncall,	oleupdate_onclose#else	oleupdate_oncall#endif} OLEOPT_UPDATE;typedef HANDLE HOBJECT;typedef LONG LHSERVER;typedef LONG LHCLIENTDOC;typedef LONG LHSERVERDOC;typedef struct _OLEOBJECT *LPOLEOBJECT;typedef struct _OLESTREAM *LPOLESTREAM;typedef struct _OLECLIENT *LPOLECLIENT;typedef struct _OLEOBJECTVTBL {	void *(CALLBACK* QueryProtocol)(LPOLEOBJECT,OLE_LPCSTR);	OLESTATUS (CALLBACK* Release)(LPOLEOBJECT);	OLESTATUS (CALLBACK* Show)(LPOLEOBJECT,BOOL);	OLESTATUS (CALLBACK* DoVerb)(LPOLEOBJECT,UINT,BOOL,BOOL);	OLESTATUS (CALLBACK* GetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE*);	OLESTATUS (CALLBACK* SetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE);	OLESTATUS (CALLBACK* SetTargetDevice)(LPOLEOBJECT,HGLOBAL);	OLESTATUS (CALLBACK* SetBounds)(LPOLEOBJECT,OLE_CONST RECT*);	OLECLIPFORMAT (CALLBACK* EnumFormats)(LPOLEOBJECT,OLECLIPFORMAT);	OLESTATUS (CALLBACK* SetColorScheme)(LPOLEOBJECT,OLE_CONST LOGPALETTE*);#ifndef SERVERONLY	OLESTATUS (CALLBACK* Delete)(LPOLEOBJECT);	OLESTATUS (CALLBACK* SetHostNames)(LPOLEOBJECT,OLE_LPCSTR,OLE_LPCSTR);	OLESTATUS (CALLBACK* SaveToStream)(LPOLEOBJECT,LPOLESTREAM);	OLESTATUS (CALLBACK* Clone)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,OLE_LPCSTR,LPOLEOBJECT*);	OLESTATUS (CALLBACK* CopyFromLink)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,OLE_LPCSTR,LPOLEOBJECT*);	OLESTATUS (CALLBACK* Equal)(LPOLEOBJECT,LPOLEOBJECT);	OLESTATUS (CALLBACK* CopyToClipboard)(LPOLEOBJECT);	OLESTATUS (CALLBACK* Draw)(LPOLEOBJECT,HDC,OLE_CONST RECT*,OLE_CONST RECT*,HDC);	OLESTATUS (CALLBACK* Activate)(LPOLEOBJECT,UINT,BOOL,BOOL,HWND,OLE_CONST RECT*);	OLESTATUS (CALLBACK* Execute)(LPOLEOBJECT,HGLOBAL,UINT);	OLESTATUS (CALLBACK* Close)(LPOLEOBJECT);	OLESTATUS (CALLBACK* Update)(LPOLEOBJECT);	OLESTATUS (CALLBACK* Reconnect)(LPOLEOBJECT);	OLESTATUS (CALLBACK* ObjectConvert)(LPOLEOBJECT,OLE_LPCSTR,LPOLECLIENT,LHCLIENTDOC,OLE_LPCSTR,LPOLEOBJECT*);	OLESTATUS (CALLBACK* GetLinkUpdateOptions)(LPOLEOBJECT,OLEOPT_UPDATE*);	OLESTATUS (CALLBACK* SetLinkUpdateOptions)(LPOLEOBJECT,OLEOPT_UPDATE);	OLESTATUS (CALLBACK* Rename)(LPOLEOBJECT,OLE_LPCSTR);	OLESTATUS (CALLBACK* QueryName)(LPOLEOBJECT,LPSTR,UINT*);	OLESTATUS (CALLBACK* QueryType)(LPOLEOBJECT,LONG*);	OLESTATUS (CALLBACK* QueryBounds)(LPOLEOBJECT,RECT*);	OLESTATUS (CALLBACK* QuerySize)(LPOLEOBJECT,DWORD*);	OLESTATUS (CALLBACK* QueryOpen)(LPOLEOBJECT);	OLESTATUS (CALLBACK* QueryOutOfDate)(LPOLEOBJECT);	OLESTATUS (CALLBACK* QueryReleaseStatus)(LPOLEOBJECT);	OLESTATUS (CALLBACK* QueryReleaseError)(LPOLEOBJECT);	OLE_RELEASE_METHOD (CALLBACK* QueryReleaseMethod)(LPOLEOBJECT);	OLESTATUS (CALLBACK* RequestData)(LPOLEOBJECT,OLECLIPFORMAT);	OLESTATUS (CALLBACK* ObjectLong)(LPOLEOBJECT,UINT,LONG*);	OLESTATUS (CALLBACK* ChangeData)(LPOLEOBJECT,HANDLE,LPOLECLIENT,BOOL);#endif} OLEOBJECTVTBL;typedef OLEOBJECTVTBL*LPOLEOBJECTVTBL;#ifndef OLE_INTERNALtypedef struct _OLEOBJECT { LPOLEOBJECTVTBL lpvtbl; } OLEOBJECT;#endiftypedef struct _OLECLIENTVTBL { int (CALLBACK* CallBack)(LPOLECLIENT,OLE_NOTIFICATION,LPOLEOBJECT); } OLECLIENTVTBL;typedef OLECLIENTVTBL *LPOLECLIENTVTBL;typedef struct _OLECLIENT { LPOLECLIENTVTBL lpvtbl; } OLECLIENT;typedef struct _OLESTREAMVTBL {	DWORD (CALLBACK* Get)(LPOLESTREAM,void*,DWORD);	DWORD (CALLBACK* Put)(LPOLESTREAM,OLE_CONST void*,DWORD);} OLESTREAMVTBL;typedef OLESTREAMVTBL *LPOLESTREAMVTBL;typedef struct _OLESTREAM { LPOLESTREAMVTBL lpstbl; } OLESTREAM;typedef enum {	OLE_SERVER_MULTI,	OLE_SERVER_SINGLE} OLE_SERVER_USE;typedef struct _OLESERVER *LPOLESERVER;typedef struct _OLESERVERDOC *LPOLESERVERDOC;typedef struct _OLESERVERVTBL {	OLESTATUS (CALLBACK* Open)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,LPOLESERVERDOC*);	OLESTATUS (CALLBACK* Create)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,OLE_LPCSTR,LPOLESERVERDOC*);	OLESTATUS (CALLBACK* CreateFromTemplate)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,OLE_LPCSTR,OLE_LPCSTR,LPOLESERVERDOC*);	OLESTATUS (CALLBACK* Edit)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,OLE_LPCSTR,LPOLESERVERDOC*);	OLESTATUS (CALLBACK* Exit)(LPOLESERVER);	OLESTATUS (CALLBACK* Release)(LPOLESERVER);	OLESTATUS (CALLBACK* Execute)(LPOLESERVER,HGLOBAL);} OLESERVERVTBL;typedef OLESERVERVTBL *LPOLESERVERVTBL;typedef struct _OLESERVER { LPOLESERVERVTBL lpvtbl; } OLESERVER;typedef struct _OLESERVERDOCVTBL {	OLESTATUS (CALLBACK* Save)(LPOLESERVERDOC);	OLESTATUS (CALLBACK* Close)(LPOLESERVERDOC);	OLESTATUS (CALLBACK* SetHostNames)(LPOLESERVERDOC,OLE_LPCSTR,OLE_LPCSTR);	OLESTATUS (CALLBACK* SetDocDimensions)(LPOLESERVERDOC,OLE_CONST RECT*);	OLESTATUS (CALLBACK* GetObject)(LPOLESERVERDOC,OLE_LPCSTR,LPOLEOBJECT*,LPOLECLIENT);	OLESTATUS (CALLBACK* Release)(LPOLESERVERDOC);	OLESTATUS (CALLBACK* SetColorScheme)(LPOLESERVERDOC,OLE_CONST LOGPALETTE*);	OLESTATUS (CALLBACK* Execute)(LPOLESERVERDOC,HGLOBAL);} OLESERVERDOCVTBL;typedef OLESERVERDOCVTBL *LPOLESERVERDOCVTBL;typedef struct _OLESERVERDOC { LPOLESERVERDOCVTBL lpvtbl; } OLESERVERDOC;OLESTATUS WINAPI OleDelete(LPOLEOBJECT);OLESTATUS WINAPI OleRelease(LPOLEOBJECT);OLESTATUS WINAPI OleSaveToStream(LPOLEOBJECT,LPOLESTREAM);OLESTATUS WINAPI OleEqual(LPOLEOBJECT,LPOLEOBJECT );OLESTATUS WINAPI OleCopyToClipboard(LPOLEOBJECT);OLESTATUS WINAPI OleSetHostNames(LPOLEOBJECT,LPCSTR,LPCSTR);OLESTATUS WINAPI OleSetTargetDevice(LPOLEOBJECT,HGLOBAL);OLESTATUS WINAPI OleSetBounds(LPOLEOBJECT,LPCRECT);OLESTATUS WINAPI OleSetColorScheme(LPOLEOBJECT,const LOGPALETTE*);OLESTATUS WINAPI OleQueryBounds(LPOLEOBJECT,RECT*);OLESTATUS WINAPI OleQuerySize(LPOLEOBJECT,DWORD*);OLESTATUS WINAPI OleDraw(LPOLEOBJECT,HDC,LPCRECT,LPCRECT,HDC);OLESTATUS WINAPI OleQueryOpen(LPOLEOBJECT);OLESTATUS WINAPI OleActivate(LPOLEOBJECT,UINT,BOOL,BOOL,HWND,LPCRECT);OLESTATUS WINAPI OleExecute(LPOLEOBJECT,HGLOBAL,UINT);OLESTATUS WINAPI OleClose(LPOLEOBJECT);OLESTATUS WINAPI OleUpdate(LPOLEOBJECT);OLESTATUS WINAPI OleReconnect(LPOLEOBJECT);OLESTATUS WINAPI OleGetLinkUpdateOptions(LPOLEOBJECT,OLEOPT_UPDATE*);OLESTATUS WINAPI OleSetLinkUpdateOptions(LPOLEOBJECT,OLEOPT_UPDATE);void *WINAPI OleQueryProtocol(LPOLEOBJECT,LPCSTR);OLESTATUS WINAPI OleQueryReleaseStatus(LPOLEOBJECT);OLESTATUS WINAPI OleQueryReleaseError(LPOLEOBJECT);OLE_RELEASE_METHOD WINAPI OleQueryReleaseMethod(LPOLEOBJECT);OLESTATUS WINAPI OleQueryType(LPOLEOBJECT,LONG*);DWORD WINAPI OleQueryClientVersion(void);DWORD WINAPI OleQueryServerVersion(void);OLECLIPFORMAT WINAPI OleEnumFormats(LPOLEOBJECT,OLECLIPFORMAT);OLESTATUS WINAPI OleGetData(LPOLEOBJECT,OLECLIPFORMAT,HANDLE*);OLESTATUS WINAPI OleSetData(LPOLEOBJECT,OLECLIPFORMAT,HANDLE);OLESTATUS WINAPI OleQueryOutOfDate(LPOLEOBJECT);OLESTATUS WINAPI OleRequestData(LPOLEOBJECT,OLECLIPFORMAT);OLESTATUS WINAPI OleQueryLinkFromClip(LPCSTR,OLEOPT_RENDER,OLECLIPFORMAT);OLESTATUS WINAPI OleQueryCreateFromClip(LPCSTR,OLEOPT_RENDER,OLECLIPFORMAT);OLESTATUS WINAPI OleCreateFromClip(LPCSTR,LPOLECLIENT,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*,OLEOPT_RENDER,OLECLIPFORMAT);OLESTATUS WINAPI OleCreateLinkFromClip(LPCSTR,LPOLECLIENT,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*,OLEOPT_RENDER,OLECLIPFORMAT);OLESTATUS WINAPI OleCreateFromFile(LPCSTR,LPOLECLIENT,LPCSTR,LPCSTR,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*,OLEOPT_RENDER,OLECLIPFORMAT);OLESTATUS WINAPI OleCreateLinkFromFile(LPCSTR,LPOLECLIENT,LPCSTR,LPCSTR,LPCSTR,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*,OLEOPT_RENDER,OLECLIPFORMAT);OLESTATUS WINAPI OleLoadFromStream(LPOLESTREAM,LPCSTR,LPOLECLIENT,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*);OLESTATUS WINAPI OleCreate(LPCSTR,LPOLECLIENT,LPCSTR,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*,OLEOPT_RENDER,OLECLIPFORMAT);OLESTATUS WINAPI OleCreateInvisible(LPCSTR,LPOLECLIENT,LPCSTR,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*,OLEOPT_RENDER,OLECLIPFORMAT,BOOL);OLESTATUS WINAPI OleCreateFromTemplate(LPCSTR,LPOLECLIENT,LPCSTR,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*,OLEOPT_RENDER,OLECLIPFORMAT);OLESTATUS WINAPI OleClone(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*);OLESTATUS WINAPI OleCopyFromLink(LPOLEOBJECT,LPCSTR,LPOLECLIENT,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*);OLESTATUS WINAPI OleObjectConvert(LPOLEOBJECT,LPCSTR,LPOLECLIENT,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*);OLESTATUS WINAPI OleRename(LPOLEOBJECT,LPCSTR);OLESTATUS WINAPI OleQueryName(LPOLEOBJECT,LPSTR,UINT*);OLESTATUS WINAPI OleRevokeObject(LPOLECLIENT);BOOL WINAPI OleIsDcMeta(HDC);OLESTATUS WINAPI OleRegisterClientDoc(LPCSTR,LPCSTR,LONG,LHCLIENTDOC*);OLESTATUS WINAPI OleRevokeClientDoc(LHCLIENTDOC);OLESTATUS WINAPI OleRenameClientDoc(LHCLIENTDOC,LPCSTR);OLESTATUS WINAPI OleRevertClientDoc(LHCLIENTDOC);OLESTATUS WINAPI OleSavedClientDoc(LHCLIENTDOC);OLESTATUS WINAPI OleEnumObjects(LHCLIENTDOC,LPOLEOBJECT*);OLESTATUS WINAPI OleRegisterServer(LPCSTR,LPOLESERVER,LHSERVER*,HINSTANCE,OLE_SERVER_USE);OLESTATUS WINAPI OleRevokeServer(LHSERVER);OLESTATUS WINAPI OleBlockServer(LHSERVER);OLESTATUS WINAPI OleUnblockServer(LHSERVER,BOOL*);OLESTATUS WINAPI OleLockServer(LPOLEOBJECT,LHSERVER*);OLESTATUS WINAPI OleUnlockServer(LHSERVER);OLESTATUS WINAPI OleRegisterServerDoc(LHSERVER,LPCSTR,LPOLESERVERDOC,LHSERVERDOC*);OLESTATUS WINAPI OleRevokeServerDoc(LHSERVERDOC);OLESTATUS WINAPI OleRenameServerDoc(LHSERVERDOC,LPCSTR);OLESTATUS WINAPI OleRevertServerDoc(LHSERVERDOC);OLESTATUS WINAPI OleSavedServerDoc(LHSERVERDOC);#ifdef __cplusplus}#endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -