📄 ole.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 + -