ole2.h
来自「用于查询PC机上的USB端口是否有设备挂接上」· C头文件 代码 · 共 1,209 行 · 第 1/3 页
H
1,209 行
/****** Other Major Interfaces ********************************************/
#include <dvobj.h>
#include <storage.h>
/****** IDrop??? Interfaces ********************************************/
#define MK_ALT 0x0020
#define DROPEFFECT_NONE 0
#define DROPEFFECT_COPY 1
#define DROPEFFECT_MOVE 2
#define DROPEFFECT_LINK 4
#define DROPEFFECT_SCROLL 0x80000000
// default inset-width of the hot zone, in pixels
#define DD_DEFSCROLLINSET 11
// default delay before scrolling, in milliseconds
#define DD_DEFSCROLLDELAY 50
/* Dragdrop specific error codes */
#define DRAGDROP_E_NOTREGISTERED (DRAGDROP_E_FIRST)
// trying to revoke a drop target that has not been registered
#define DRAGDROP_E_ALREADYREGISTERED (DRAGDROP_E_FIRST+1)
// this window has already been registered as a drop target
#define DRAGDROP_E_INVALIDHWND (DRAGDROP_E_FIRST+2)
// invalid HWND
#define DRAGDROP_S_DROP (DRAGDROP_S_FIRST + 0)
// successful drop took place
#define DRAGDROP_S_CANCEL (DRAGDROP_S_FIRST + 1)
// drag-drop operation canceled
#define DRAGDROP_S_USEDEFAULTCURSORS (DRAGDROP_S_FIRST + 2)
// use the default cursor
#undef INTERFACE
#define INTERFACE IDropTarget
DECLARE_INTERFACE_(IDropTarget, IUnknown)
{
// *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
// *** IDropTarget methods ***
STDMETHOD(DragEnter) (THIS_ LPDATAOBJECT pDataObj, DWORD grfKeyState, POINTL pt, LPDWORD pdwEffect) PURE;
STDMETHOD(DragOver) (THIS_ DWORD grfKeyState, POINTL pt, LPDWORD pdwEffect) PURE;
STDMETHOD(DragLeave) (THIS) PURE;
STDMETHOD(Drop) (THIS_ LPDATAOBJECT pDataObj, DWORD grfKeyState, POINTL pt, LPDWORD pdwEffect) PURE;
};
typedef IDropTarget FAR* LPDROPTARGET;
#undef INTERFACE
#define INTERFACE IDropSource
DECLARE_INTERFACE_(IDropSource, IUnknown)
{
// *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
// *** IDropSource methods ***
STDMETHOD(QueryContinueDrag) (THIS_ BOOL fEscapePressed, DWORD grfKeyState) PURE;
STDMETHOD(GiveFeedback) (THIS_ DWORD dwEffect) PURE;
};
typedef IDropSource FAR* LPDROPSOURCE;
/****** IPersist??? Interfaces ********************************************/
#undef INTERFACE
#define INTERFACE IPersist
DECLARE_INTERFACE_(IPersist, IUnknown)
{
// *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
// *** IPersist methods ***
STDMETHOD(GetClassID) (THIS_ LPCLSID lpClassID) PURE;
};
typedef IPersist FAR* LPPERSIST;
#undef INTERFACE
#define INTERFACE IPersistStorage
DECLARE_INTERFACE_(IPersistStorage, IPersist)
{
// *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
// *** IPersist methods ***
STDMETHOD(GetClassID) (THIS_ LPCLSID lpClassID) PURE;
// *** IPersistStorage methods ***
STDMETHOD(IsDirty) (THIS) PURE;
STDMETHOD(InitNew) (THIS_ LPSTORAGE pStg) PURE;
STDMETHOD(Load) (THIS_ LPSTORAGE pStg) PURE;
STDMETHOD(Save) (THIS_ LPSTORAGE pStgSave, BOOL fSameAsLoad) PURE;
STDMETHOD(SaveCompleted) (THIS_ LPSTORAGE pStgNew) PURE;
STDMETHOD(HandsOffStorage) (THIS) PURE;
};
typedef IPersistStorage FAR* LPPERSISTSTORAGE;
#undef INTERFACE
#define INTERFACE IPersistStream
DECLARE_INTERFACE_(IPersistStream, IPersist)
{
// *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
// *** IPersist methods ***
STDMETHOD(GetClassID) (THIS_ LPCLSID lpClassID) PURE;
// *** IPersistStream methods ***
STDMETHOD(IsDirty) (THIS) PURE;
STDMETHOD(Load) (THIS_ LPSTREAM pStm) PURE;
STDMETHOD(Save) (THIS_ LPSTREAM pStm,
BOOL fClearDirty) PURE;
STDMETHOD(GetSizeMax) (THIS_ ULARGE_INTEGER FAR * pcbSize) PURE;
};
typedef IPersistStream FAR* LPPERSISTSTREAM;
#undef INTERFACE
#define INTERFACE IPersistFile
DECLARE_INTERFACE_(IPersistFile, IPersist)
{
// *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
// *** IPersist methods ***
STDMETHOD(GetClassID) (THIS_ LPCLSID lpClassID) PURE;
// *** IPersistFile methods ***
STDMETHOD(IsDirty) (THIS) PURE;
STDMETHOD(Load) (THIS_ LPCSTR lpszFileName, DWORD grfMode) PURE;
STDMETHOD(Save) (THIS_ LPCSTR lpszFileName, BOOL fRemember) PURE;
STDMETHOD(SaveCompleted) (THIS_ LPCSTR lpszFileName) PURE;
STDMETHOD(GetCurFile) (THIS_ LPSTR FAR * lplpszFileName) PURE;
};
typedef IPersistFile FAR* LPPERSISTFILE;
/****** Moniker Object Interfaces ******************************************/
#include <moniker.h>
/****** OLE Object Interfaces ******************************************/
#undef INTERFACE
#define INTERFACE IEnumOLEVERB
DECLARE_INTERFACE_(IEnumOLEVERB, IUnknown)
{
// *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
// *** IEnumOLEVERB methods ***
STDMETHOD(Next) (THIS_ ULONG celt, LPOLEVERB rgelt, ULONG FAR* pceltFetched) PURE;
STDMETHOD(Skip) (THIS_ ULONG celt) PURE;
STDMETHOD(Reset) (THIS) PURE;
STDMETHOD(Clone) (THIS_ IEnumOLEVERB FAR* FAR* ppenm) PURE;
};
typedef IEnumOLEVERB FAR* LPENUMOLEVERB;
#undef INTERFACE
#define INTERFACE IOleObject
#define OLEOBJ_E_NOVERBS (OLEOBJ_E_FIRST + 0)
#define OLEOBJ_E_INVALIDVERB (OLEOBJ_E_FIRST + 1)
#define OLEOBJ_S_INVALIDVERB (OLEOBJ_S_FIRST + 0)
#define OLEOBJ_S_CANNOT_DOVERB_NOW (OLEOBJ_S_FIRST + 1)
// verb number is valid but verb cannot be done now, for instance
// hiding a link or hiding a visible OLE 1.0 server
#define OLEOBJ_S_INVALIDHWND (OLEOBJ_S_FIRST + 2)
// invalid hwnd passed
DECLARE_INTERFACE_(IOleObject, IUnknown)
{
// *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
// *** IOleObject methods ***
STDMETHOD(SetClientSite) (THIS_ LPOLECLIENTSITE pClientSite) PURE;
STDMETHOD(GetClientSite) (THIS_ LPOLECLIENTSITE FAR* ppClientSite) PURE;
STDMETHOD(SetHostNames) (THIS_ LPCSTR szContainerApp, LPCSTR szContainerObj) PURE;
STDMETHOD(Close) (THIS_ DWORD dwSaveOption) PURE;
STDMETHOD(SetMoniker) (THIS_ DWORD dwWhichMoniker, LPMONIKER pmk) PURE;
STDMETHOD(GetMoniker) (THIS_ DWORD dwAssign, DWORD dwWhichMoniker,
LPMONIKER FAR* ppmk) PURE;
STDMETHOD(InitFromData) (THIS_ LPDATAOBJECT pDataObject,
BOOL fCreation,
DWORD dwReserved) PURE;
STDMETHOD(GetClipboardData) (THIS_ DWORD dwReserved,
LPDATAOBJECT FAR* ppDataObject) PURE;
STDMETHOD(DoVerb) (THIS_ LONG iVerb,
LPMSG lpmsg,
LPOLECLIENTSITE pActiveSite,
LONG lindex,
HWND hwndParent,
LPCRECT lprcPosRect) PURE;
STDMETHOD(EnumVerbs) (THIS_ LPENUMOLEVERB FAR* ppenumOleVerb) PURE;
STDMETHOD(Update) (THIS) PURE;
STDMETHOD(IsUpToDate) (THIS) PURE;
STDMETHOD(GetUserClassID) (THIS_ CLSID FAR* pClsid) PURE;
STDMETHOD(GetUserType) (THIS_ DWORD dwFormOfType, LPSTR FAR* pszUserType) PURE;
STDMETHOD(SetExtent) (THIS_ DWORD dwDrawAspect, LPSIZEL lpsizel) PURE;
STDMETHOD(GetExtent) (THIS_ DWORD dwDrawAspect, LPSIZEL lpsizel) PURE;
STDMETHOD(Advise)(THIS_ LPADVISESINK pAdvSink, DWORD FAR* pdwConnection) PURE;
STDMETHOD(Unadvise)(THIS_ DWORD dwConnection) PURE;
STDMETHOD(EnumAdvise) (THIS_ LPENUMSTATDATA FAR* ppenumAdvise) PURE;
STDMETHOD(GetMiscStatus) (THIS_ DWORD dwAspect, DWORD FAR* pdwStatus) PURE;
STDMETHOD(SetColorScheme) (THIS_ LPLOGPALETTE lpLogpal) PURE;
};
typedef IOleObject FAR* LPOLEOBJECT;
#undef INTERFACE
#define INTERFACE IOleClientSite
DECLARE_INTERFACE_(IOleClientSite, IUnknown)
{
// *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
// *** IOleClientSite methods ***
STDMETHOD(SaveObject) (THIS) PURE;
STDMETHOD(GetMoniker) (THIS_ DWORD dwAssign, DWORD dwWhichMoniker,
LPMONIKER FAR* ppmk) PURE;
STDMETHOD(GetContainer) (THIS_ LPOLECONTAINER FAR* ppContainer) PURE;
STDMETHOD(ShowObject) (THIS) PURE;
STDMETHOD(OnShowWindow) (THIS_ BOOL fShow) PURE;
STDMETHOD(RequestNewObjectLayout) (THIS) PURE;
};
typedef IOleClientSite FAR* LPOLECLIENTSITE;
#undef INTERFACE
#define INTERFACE IParseDisplayName
DECLARE_INTERFACE_(IParseDisplayName, IUnknown)
{
// *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
// *** IParseDisplayName method ***
STDMETHOD(ParseDisplayName) (THIS_ LPBC pbc, LPSTR lpszDisplayName,
ULONG FAR* pchEaten, LPMONIKER FAR* ppmkOut) PURE;
};
typedef IParseDisplayName FAR* LPPARSEDISPLAYNAME;
#undef INTERFACE
#define INTERFACE IOleContainer
DECLARE_INTERFACE_(IOleContainer, IParseDisplayName)
{
// *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
// *** IParseDisplayName method ***
STDMETHOD(ParseDisplayName) (THIS_ LPBC pbc, LPSTR lpszDisplayName,
ULONG FAR* pchEaten, LPMONIKER FAR* ppmkOut) PURE;
// *** IOleContainer methods ***
STDMETHOD(EnumObjects) ( DWORD grfFlags, LPENUMUNKNOWN FAR* ppenumUnknown) PURE;
STDMETHOD(LockContainer) (THIS_ BOOL fLock) PURE;
};
typedef IOleContainer FAR* LPOLECONTAINER;
typedef enum tagBINDSPEED
{
BINDSPEED_INDEFINITE = 1,
BINDSPEED_MODERATE = 2,
BINDSPEED_IMMEDIATE = 3
} BINDSPEED;
typedef enum tagOLECONTF
{
OLECONTF_EMBEDDINGS = 1,
OLECONTF_LINKS = 2,
OLECONTF_OTHERS = 4,
OLECONTF_ONLYUSER = 8,
OLECONTF_ONLYIFRUNNING = 16
} OLECONTF;
#undef INTERFACE
#define INTERFACE IOleItemContainer
DECLARE_INTERFACE_(IOleItemContainer, IOleContainer)
{
// *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
// *** IParseDisplayName method ***
STDMETHOD(ParseDisplayName) (THIS_ LPBC pbc, LPSTR lpszDisplayName,
ULONG FAR* pchEaten, LPMONIKER FAR* ppmkOut) PURE;
// *** IOleContainer methods ***
STDMETHOD(EnumObjects) (THIS_ DWORD grfFlags, LPENUMUNKNOWN FAR* ppenumUnknown) PURE;
STDMETHOD(LockContainer) (THIS_ BOOL fLock) PURE;
// *** IOleItemContainer methods ***
STDMETHOD(GetObject) (THIS_ LPSTR lpszItem, DWORD dwSpeedNeeded,
LPBINDCTX pbc, REFIID riid, LPVOID FAR* ppvObject) PURE;
STDMETHOD(GetObjectStorage) (THIS_ LPSTR lpszItem, LPBINDCTX pbc,
REFIID riid, LPVOID FAR* ppvStorage) PURE;
STDMETHOD(IsRunning) (THIS_ LPSTR lpszItem) PURE;
};
typedef IOleItemContainer FAR* LPOLEITEMCONTAINER;
#undef INTERFACE
#define INTERFACE IOleAdviseHolder
DECLARE_INTERFACE_(IOleAdviseHolder, IUnknown)
{
// *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppv) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
// *** IOleAdviseHolder methods ***
STDMETHOD(Advise)(THIS_ LPADVISESINK pAdvise, DWORD FAR* pdwConnection) PURE;
STDMETHOD(Unadvise)(THIS_ DWORD dwConnection) PURE;
STDMETHOD(EnumAdvise)(THIS_ LPENUMSTATDATA FAR* ppenumAdvise) PURE;
STDMETHOD(SendOnRename)(THIS_ LPMONIKER pmk) PURE;
STDMETHOD(SendOnSave)(THIS) PURE;
STDMETHOD(SendOnClose)(THIS) PURE;
};
typedef IOleAdviseHolder FAR* LPOLEADVISEHOLDER;
/****** OLE Link Interface ************************************************/
/* Link update options */
typedef enum tagOLEUPDATE
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?