📄 objbase.h
字号:
#endif // DCOM
/* helper for creating instances */
WINOLEAPI CoCreateInstance(IN REFCLSID rclsid, IN LPUNKNOWN pUnkOuter,
IN DWORD dwClsContext, IN REFIID riid, OUT LPVOID FAR* ppv);
#if (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM) // DCOM
WINOLEAPI CoGetInstanceFromFile(
IN COSERVERINFO * pServerInfo,
IN CLSID * pClsid,
IN IUnknown * punkOuter, // only relevant locally
IN DWORD dwClsCtx,
IN DWORD grfMode,
IN OLECHAR * pwszName,
IN DWORD dwCount,
IN OUT MULTI_QI * pResults );
WINOLEAPI CoGetInstanceFromIStorage(
IN COSERVERINFO * pServerInfo,
IN CLSID * pClsid,
IN IUnknown * punkOuter, // only relevant locally
IN DWORD dwClsCtx,
IN struct IStorage * pstg,
IN DWORD dwCount,
IN OUT MULTI_QI * pResults );
WINOLEAPI CoCreateInstanceEx(
IN REFCLSID Clsid,
IN IUnknown * punkOuter, // only relevant locally
IN DWORD dwClsCtx,
IN COSERVERINFO * pServerInfo,
IN DWORD dwCount,
IN OUT MULTI_QI * pResults );
#endif // DCOM
/* Call related APIs */
#if (_WIN32_WINNT >= 0x0500 ) || defined(_WIN32_DCOM) // DCOM
WINOLEAPI CoGetCancelObject(IN DWORD dwThreadId, IN REFIID iid, OUT void **ppUnk);
WINOLEAPI CoSetCancelObject(IN IUnknown *pUnk);
WINOLEAPI CoCancelCall(IN DWORD dwThreadId, IN ULONG ulTimeout);
WINOLEAPI CoTestCancel();
WINOLEAPI CoEnableCallCancellation(IN LPVOID pReserved);
WINOLEAPI CoDisableCallCancellation(IN LPVOID pReserved);
#endif
/* other helpers */
WINOLEAPI StringFromCLSID(IN REFCLSID rclsid, OUT LPOLESTR FAR* lplpsz);
WINOLEAPI CLSIDFromString(IN LPOLESTR lpsz, OUT LPCLSID pclsid);
WINOLEAPI StringFromIID(IN REFIID rclsid, OUT LPOLESTR FAR* lplpsz);
WINOLEAPI IIDFromString(IN LPOLESTR lpsz, OUT LPIID lpiid);
WINOLEAPI_(BOOL) CoIsOle1Class(IN REFCLSID rclsid);
WINOLEAPI ProgIDFromCLSID (IN REFCLSID clsid, OUT LPOLESTR FAR* lplpszProgID);
WINOLEAPI CLSIDFromProgID (IN LPCOLESTR lpszProgID, OUT LPCLSID lpclsid);
WINOLEAPI CLSIDFromProgIDEx (IN LPCOLESTR lpszProgID, OUT LPCLSID lpclsid);
WINOLEAPI_(int) StringFromGUID2(IN REFGUID rguid, OUT LPOLESTR lpsz, IN int cchMax);
WINOLEAPI CoCreateGuid(OUT GUID FAR *pguid);
WINOLEAPI_(BOOL) CoFileTimeToDosDateTime(
IN FILETIME FAR* lpFileTime, OUT LPWORD lpDosDate, OUT LPWORD lpDosTime);
WINOLEAPI_(BOOL) CoDosDateTimeToFileTime(
IN WORD nDosDate, IN WORD nDosTime, OUT FILETIME FAR* lpFileTime);
WINOLEAPI CoFileTimeNow( OUT FILETIME FAR* lpFileTime );
WINOLEAPI CoRegisterMessageFilter( IN LPMESSAGEFILTER lpMessageFilter,
OUT LPMESSAGEFILTER FAR* lplpMessageFilter );
#if (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM) // DCOM
WINOLEAPI CoRegisterChannelHook( IN REFGUID ExtensionUuid, IN IChannelHook *pChannelHook );
#endif // DCOM
#if (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM) // DCOM
/* Synchronization API */
WINOLEAPI CoWaitForMultipleHandles (IN DWORD dwFlags,
IN DWORD dwTimeout,
IN ULONG cHandles,
IN LPHANDLE pHandles,
OUT LPDWORD lpdwindex);
/* Flags for Synchronization API and Classes */
typedef enum tagCOWAIT_FLAGS
{
COWAIT_WAITALL = 1,
COWAIT_ALERTABLE = 2
}COWAIT_FLAGS;
#endif // DCOM
/* TreatAs APIS */
WINOLEAPI CoGetTreatAsClass(IN REFCLSID clsidOld, OUT LPCLSID pClsidNew);
WINOLEAPI CoTreatAsClass(IN REFCLSID clsidOld, IN REFCLSID clsidNew);
/* the server dlls must define their DllGetClassObject and DllCanUnloadNow
* to match these; the typedefs are located here to ensure all are changed at
* the same time.
*/
//#ifdef _MAC
//typedef STDAPICALLTYPE HRESULT (* LPFNGETCLASSOBJECT) (REFCLSID, REFIID, LPVOID *);
//#else
typedef HRESULT (STDAPICALLTYPE * LPFNGETCLASSOBJECT) (REFCLSID, REFIID, LPVOID *);
//#endif
//#ifdef _MAC
//typedef STDAPICALLTYPE HRESULT (* LPFNCANUNLOADNOW)(void);
//#else
typedef HRESULT (STDAPICALLTYPE * LPFNCANUNLOADNOW)(void);
//#endif
STDAPI DllGetClassObject(IN REFCLSID rclsid, IN REFIID riid, OUT LPVOID FAR* ppv);
STDAPI DllCanUnloadNow(void);
/****** Default Memory Allocation ******************************************/
WINOLEAPI_(LPVOID) CoTaskMemAlloc(IN SIZE_T cb);
WINOLEAPI_(LPVOID) CoTaskMemRealloc(IN LPVOID pv, IN SIZE_T cb);
WINOLEAPI_(void) CoTaskMemFree(IN LPVOID pv);
/****** DV APIs ***********************************************************/
WINOLEAPI CreateDataAdviseHolder(OUT LPDATAADVISEHOLDER FAR* ppDAHolder);
WINOLEAPI CreateDataCache(IN LPUNKNOWN pUnkOuter, IN REFCLSID rclsid,
IN REFIID iid, OUT LPVOID FAR* ppv);
/****** Storage API Prototypes ********************************************/
WINOLEAPI StgCreateDocfile(IN const OLECHAR FAR* pwcsName,
IN DWORD grfMode,
IN DWORD reserved,
OUT IStorage FAR * FAR *ppstgOpen);
WINOLEAPI StgCreateDocfileOnILockBytes(IN ILockBytes FAR *plkbyt,
IN DWORD grfMode,
IN DWORD reserved,
OUT IStorage FAR * FAR *ppstgOpen);
WINOLEAPI StgOpenStorage(IN const OLECHAR FAR* pwcsName,
IN IStorage FAR *pstgPriority,
IN DWORD grfMode,
IN SNB snbExclude,
IN DWORD reserved,
OUT IStorage FAR * FAR *ppstgOpen);
WINOLEAPI StgOpenStorageOnILockBytes(IN ILockBytes FAR *plkbyt,
IN IStorage FAR *pstgPriority,
IN DWORD grfMode,
IN SNB snbExclude,
IN DWORD reserved,
OUT IStorage FAR * FAR *ppstgOpen);
WINOLEAPI StgIsStorageFile(IN const OLECHAR FAR* pwcsName);
WINOLEAPI StgIsStorageILockBytes(IN ILockBytes FAR* plkbyt);
WINOLEAPI StgSetTimes(IN OLECHAR const FAR* lpszName,
IN FILETIME const FAR* pctime,
IN FILETIME const FAR* patime,
IN FILETIME const FAR* pmtime);
WINOLEAPI StgOpenAsyncDocfileOnIFillLockBytes( IN IFillLockBytes *pflb,
IN DWORD grfMode,
IN DWORD asyncFlags,
OUT IStorage **ppstgOpen);
WINOLEAPI StgGetIFillLockBytesOnILockBytes( IN ILockBytes *pilb,
OUT IFillLockBytes **ppflb);
WINOLEAPI StgGetIFillLockBytesOnFile(IN OLECHAR const *pwcsName,
OUT IFillLockBytes **ppflb);
WINOLEAPI StgOpenLayoutDocfile(IN OLECHAR const *pwcsDfName,
IN DWORD grfMode,
IN DWORD reserved,
OUT IStorage **ppstgOpen);
// STG initialization options for StgCreateStorageEx and StgOpenStorageEx
#define STGOPTIONS_VERSION 1
typedef struct tagSTGOPTIONS
{
USHORT usVersion; // Version 1
USHORT reserved; // must be 0 for padding
ULONG ulSectorSize; // docfile header sector size (512)
} STGOPTIONS;
WINOLEAPI StgCreateStorageEx (IN const WCHAR* pwcsName,
IN DWORD grfMode,
IN DWORD stgfmt, // enum
IN DWORD grfAttrs, // reserved
IN STGOPTIONS * pStgOptions,
IN void * reserved,
IN REFIID riid,
OUT void ** ppObjectOpen);
WINOLEAPI StgOpenStorageEx (IN const WCHAR* pwcsName,
IN DWORD grfMode,
IN DWORD stgfmt, // enum
IN DWORD grfAttrs, // reserved
IN STGOPTIONS * pStgOptions,
IN void * reserved,
IN REFIID riid,
OUT void ** ppObjectOpen);
//
// Moniker APIs
//
WINOLEAPI BindMoniker(IN LPMONIKER pmk, IN DWORD grfOpt, IN REFIID iidResult, OUT LPVOID FAR* ppvResult);
WINOLEAPI CoInstall(
IN IBindCtx * pbc,
IN DWORD dwFlags,
IN uCLSSPEC * pClassSpec,
IN QUERYCONTEXT * pQuery,
IN LPWSTR pszCodeBase);
WINOLEAPI CoGetObject(IN LPCWSTR pszName, IN BIND_OPTS *pBindOptions, IN REFIID riid, OUT void **ppv);
WINOLEAPI MkParseDisplayName(IN LPBC pbc, IN LPCOLESTR szUserName,
OUT ULONG FAR * pchEaten, OUT LPMONIKER FAR * ppmk);
WINOLEAPI MonikerRelativePathTo(IN LPMONIKER pmkSrc, IN LPMONIKER pmkDest, OUT LPMONIKER
FAR* ppmkRelPath, IN BOOL dwReserved);
WINOLEAPI MonikerCommonPrefixWith(IN LPMONIKER pmkThis, IN LPMONIKER pmkOther,
OUT LPMONIKER FAR* ppmkCommon);
WINOLEAPI CreateBindCtx(IN DWORD reserved, OUT LPBC FAR* ppbc);
WINOLEAPI CreateGenericComposite(IN LPMONIKER pmkFirst, IN LPMONIKER pmkRest,
OUT LPMONIKER FAR* ppmkComposite);
WINOLEAPI GetClassFile (IN LPCOLESTR szFilename, OUT CLSID FAR* pclsid);
WINOLEAPI CreateClassMoniker(IN REFCLSID rclsid, OUT LPMONIKER FAR* ppmk);
WINOLEAPI CreateFileMoniker(IN LPCOLESTR lpszPathName, OUT LPMONIKER FAR* ppmk);
WINOLEAPI CreateItemMoniker(IN LPCOLESTR lpszDelim, IN LPCOLESTR lpszItem,
OUT LPMONIKER FAR* ppmk);
WINOLEAPI CreateAntiMoniker(OUT LPMONIKER FAR* ppmk);
WINOLEAPI CreatePointerMoniker(IN LPUNKNOWN punk, OUT LPMONIKER FAR* ppmk);
WINOLEAPI CreateObjrefMoniker(IN LPUNKNOWN punk, OUT LPMONIKER FAR * ppmk);
WINOLEAPI GetRunningObjectTable( IN DWORD reserved, OUT LPRUNNINGOBJECTTABLE FAR* pprot);
#include <urlmon.h>
#include <propidl.h>
//
// Standard Progress Indicator impolementation
//
WINOLEAPI CreateStdProgressIndicator(IN HWND hwndParent,
IN LPCOLESTR pszTitle,
IN IBindStatusCallback * pIbscCaller,
OUT IBindStatusCallback ** ppIbsc);
#ifndef RC_INVOKED
#include <poppack.h>
#endif // RC_INVOKED
#endif // __OBJBASE_H__
#pragma option pop /*P_O_Pop*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -