objbase.h 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. /**
  2. * This file is part of the mingw-w64 runtime package.
  3. * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  4. */
  5. #include <winapifamily.h>
  6. #include <rpc.h>
  7. #include <rpcndr.h>
  8. #ifndef _OBJBASE_H_
  9. #define _OBJBASE_H_
  10. #include <pshpack8.h>
  11. #include <combaseapi.h>
  12. typedef enum tagCOINIT {
  13. COINIT_APARTMENTTHREADED = 0x2,
  14. COINIT_MULTITHREADED = COINITBASE_MULTITHREADED,
  15. COINIT_DISABLE_OLE1DDE = 0x4,
  16. COINIT_SPEED_OVER_MEMORY = 0x8
  17. } COINIT;
  18. #define MARSHALINTERFACE_MIN 500
  19. #define CWCSTORAGENAME 32
  20. #define STGM_DIRECT __MSABI_LONG(0x00000000)
  21. #define STGM_TRANSACTED __MSABI_LONG(0x00010000)
  22. #define STGM_SIMPLE __MSABI_LONG(0x08000000)
  23. #define STGM_READ __MSABI_LONG(0x00000000)
  24. #define STGM_WRITE __MSABI_LONG(0x00000001)
  25. #define STGM_READWRITE __MSABI_LONG(0x00000002)
  26. #define STGM_SHARE_DENY_NONE __MSABI_LONG(0x00000040)
  27. #define STGM_SHARE_DENY_READ __MSABI_LONG(0x00000030)
  28. #define STGM_SHARE_DENY_WRITE __MSABI_LONG(0x00000020)
  29. #define STGM_SHARE_EXCLUSIVE __MSABI_LONG(0x00000010)
  30. #define STGM_PRIORITY __MSABI_LONG(0x00040000)
  31. #define STGM_DELETEONRELEASE __MSABI_LONG(0x04000000)
  32. #define STGM_NOSCRATCH __MSABI_LONG(0x00100000)
  33. #define STGM_CREATE __MSABI_LONG(0x00001000)
  34. #define STGM_CONVERT __MSABI_LONG(0x00020000)
  35. #define STGM_FAILIFTHERE __MSABI_LONG(0x00000000)
  36. #define STGM_NOSNAPSHOT __MSABI_LONG(0x00200000)
  37. #define STGM_DIRECT_SWMR __MSABI_LONG(0x00400000)
  38. #define ASYNC_MODE_COMPATIBILITY __MSABI_LONG(0x00000001)
  39. #define ASYNC_MODE_DEFAULT __MSABI_LONG(0x00000000)
  40. #define STGTY_REPEAT __MSABI_LONG(0x00000100)
  41. #define STG_TOEND __MSABI_LONG(0xffffffff)
  42. #define STG_LAYOUT_SEQUENTIAL __MSABI_LONG(0x00000000)
  43. #define STG_LAYOUT_INTERLEAVED __MSABI_LONG(0x00000001)
  44. typedef DWORD STGFMT;
  45. #define STGFMT_STORAGE 0
  46. #define STGFMT_NATIVE 1
  47. #define STGFMT_FILE 3
  48. #define STGFMT_ANY 4
  49. #define STGFMT_DOCFILE 5
  50. #define STGFMT_DOCUMENT 0
  51. #include <objidl.h>
  52. #ifdef _OLE32_
  53. #ifdef _OLE32PRIV_
  54. WINBOOL _fastcall wIsEqualGUID (REFGUID rguid1, REFGUID rguid2);
  55. #define IsEqualGUID(rguid1, rguid2) wIsEqualGUID (rguid1, rguid2)
  56. #else
  57. #define __INLINE_ISEQUAL_GUID
  58. #endif
  59. #endif
  60. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  61. WINOLEAPI_(DWORD) CoBuildVersion (VOID);
  62. WINOLEAPI CoInitialize (LPVOID pvReserved);
  63. WINOLEAPI CoRegisterMallocSpy (LPMALLOCSPY pMallocSpy);
  64. WINOLEAPI CoRevokeMallocSpy (void);
  65. WINOLEAPI CoCreateStandardMalloc (DWORD memctx, IMalloc **ppMalloc);
  66. WINOLEAPI CoRegisterInitializeSpy (LPINITIALIZESPY pSpy, ULARGE_INTEGER *puliCookie);
  67. WINOLEAPI CoRevokeInitializeSpy (ULARGE_INTEGER uliCookie);
  68. typedef enum tagCOMSD {
  69. SD_LAUNCHPERMISSIONS = 0,
  70. SD_ACCESSPERMISSIONS = 1,
  71. SD_LAUNCHRESTRICTIONS = 2,
  72. SD_ACCESSRESTRICTIONS = 3
  73. } COMSD;
  74. WINOLEAPI CoGetSystemSecurityPermissions (COMSD comSDType, PSECURITY_DESCRIPTOR *ppSD);
  75. WINOLEAPI_(HINSTANCE) CoLoadLibrary (LPOLESTR lpszLibName, WINBOOL bAutoFree);
  76. WINOLEAPI_(void) CoFreeLibrary (HINSTANCE hInst);
  77. WINOLEAPI_(void) CoFreeAllLibraries (void);
  78. WINOLEAPI CoGetInstanceFromFile (COSERVERINFO *pServerInfo, CLSID *pClsid, IUnknown *punkOuter, DWORD dwClsCtx, DWORD grfMode, OLECHAR *pwszName, DWORD dwCount, MULTI_QI *pResults);
  79. WINOLEAPI CoGetInstanceFromIStorage (COSERVERINFO *pServerInfo, CLSID *pClsid, IUnknown *punkOuter, DWORD dwClsCtx, struct IStorage *pstg, DWORD dwCount, MULTI_QI *pResults);
  80. WINOLEAPI CoAllowSetForegroundWindow (IUnknown *pUnk, LPVOID lpvReserved);
  81. WINOLEAPI DcomChannelSetHResult (LPVOID pvReserved, ULONG *pulReserved, HRESULT appsHR);
  82. WINOLEAPI_(WINBOOL) CoIsOle1Class (REFCLSID rclsid);
  83. WINOLEAPI CLSIDFromProgIDEx (LPCOLESTR lpszProgID, LPCLSID lpclsid);
  84. WINOLEAPI_(WINBOOL) CoFileTimeToDosDateTime (FILETIME *lpFileTime, LPWORD lpDosDate, LPWORD lpDosTime);
  85. WINOLEAPI_(WINBOOL) CoDosDateTimeToFileTime (WORD nDosDate, WORD nDosTime, FILETIME *lpFileTime);
  86. WINOLEAPI CoFileTimeNow (FILETIME *lpFileTime);
  87. WINOLEAPI CoRegisterMessageFilter (LPMESSAGEFILTER lpMessageFilter, LPMESSAGEFILTER *lplpMessageFilter);
  88. WINOLEAPI CoRegisterChannelHook (REFGUID ExtensionUuid, IChannelHook *pChannelHook);
  89. WINOLEAPI CoTreatAsClass (REFCLSID clsidOld, REFCLSID clsidNew);
  90. WINOLEAPI CreateDataAdviseHolder (LPDATAADVISEHOLDER *ppDAHolder);
  91. WINOLEAPI CreateDataCache (LPUNKNOWN pUnkOuter, REFCLSID rclsid, REFIID iid, LPVOID *ppv);
  92. WINOLEAPI StgOpenLayoutDocfile (OLECHAR const *pwcsDfName, DWORD grfMode, DWORD reserved, IStorage **ppstgOpen);
  93. #endif
  94. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
  95. WINOLEAPI StgCreateDocfile (const WCHAR *pwcsName, DWORD grfMode, DWORD reserved, IStorage **ppstgOpen);
  96. WINOLEAPI StgCreateDocfileOnILockBytes (ILockBytes *plkbyt, DWORD grfMode, DWORD reserved, IStorage **ppstgOpen);
  97. WINOLEAPI StgOpenStorage (const WCHAR *pwcsName, IStorage *pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage **ppstgOpen);
  98. WINOLEAPI StgOpenStorageOnILockBytes (ILockBytes *plkbyt, IStorage *pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage **ppstgOpen);
  99. WINOLEAPI StgIsStorageFile (const WCHAR *pwcsName);
  100. WINOLEAPI StgIsStorageILockBytes (ILockBytes *plkbyt);
  101. WINOLEAPI StgSetTimes (const WCHAR *lpszName, const FILETIME *pctime, const FILETIME *patime, const FILETIME *pmtime);
  102. WINOLEAPI StgOpenAsyncDocfileOnIFillLockBytes (IFillLockBytes *pflb, DWORD grfMode, DWORD asyncFlags, IStorage **ppstgOpen);
  103. WINOLEAPI StgGetIFillLockBytesOnILockBytes (ILockBytes *pilb, IFillLockBytes **ppflb);
  104. WINOLEAPI StgGetIFillLockBytesOnFile (OLECHAR const *pwcsName, IFillLockBytes **ppflb);
  105. #endif
  106. #define STGOPTIONS_VERSION 2
  107. typedef struct tagSTGOPTIONS {
  108. USHORT usVersion;
  109. USHORT reserved;
  110. ULONG ulSectorSize;
  111. #if STGOPTIONS_VERSION >= 2
  112. const WCHAR *pwcsTemplateFile;
  113. #endif
  114. } STGOPTIONS;
  115. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
  116. WINOLEAPI StgCreateStorageEx (const WCHAR *pwcsName, DWORD grfMode, DWORD stgfmt, DWORD grfAttrs, STGOPTIONS *pStgOptions, PSECURITY_DESCRIPTOR pSecurityDescriptor, REFIID riid, void **ppObjectOpen);
  117. WINOLEAPI StgOpenStorageEx (const WCHAR *pwcsName, DWORD grfMode, DWORD stgfmt, DWORD grfAttrs, STGOPTIONS *pStgOptions, PSECURITY_DESCRIPTOR pSecurityDescriptor, REFIID riid, void **ppObjectOpen);
  118. WINOLEAPI BindMoniker (LPMONIKER pmk, DWORD grfOpt, REFIID iidResult, LPVOID *ppvResult);
  119. WINOLEAPI CoGetObject (LPCWSTR pszName, BIND_OPTS *pBindOptions, REFIID riid, void **ppv);
  120. WINOLEAPI MkParseDisplayName (LPBC pbc, LPCOLESTR szUserName, ULONG *pchEaten, LPMONIKER *ppmk);
  121. WINOLEAPI MonikerRelativePathTo (LPMONIKER pmkSrc, LPMONIKER pmkDest, LPMONIKER *ppmkRelPath, WINBOOL dwReserved);
  122. WINOLEAPI MonikerCommonPrefixWith (LPMONIKER pmkThis, LPMONIKER pmkOther, LPMONIKER *ppmkCommon);
  123. WINOLEAPI CreateBindCtx (DWORD reserved, LPBC *ppbc);
  124. WINOLEAPI CreateGenericComposite (LPMONIKER pmkFirst, LPMONIKER pmkRest, LPMONIKER *ppmkComposite);
  125. WINOLEAPI GetClassFile (LPCOLESTR szFilename, CLSID *pclsid);
  126. WINOLEAPI CreateClassMoniker (REFCLSID rclsid, LPMONIKER *ppmk);
  127. WINOLEAPI CreateFileMoniker (LPCOLESTR lpszPathName, LPMONIKER *ppmk);
  128. WINOLEAPI CreateItemMoniker (LPCOLESTR lpszDelim, LPCOLESTR lpszItem, LPMONIKER *ppmk);
  129. WINOLEAPI CreateAntiMoniker (LPMONIKER *ppmk);
  130. WINOLEAPI CreatePointerMoniker (LPUNKNOWN punk, LPMONIKER *ppmk);
  131. WINOLEAPI CreateObjrefMoniker (LPUNKNOWN punk, LPMONIKER *ppmk);
  132. #endif
  133. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  134. WINOLEAPI CoInstall (IBindCtx *pbc, DWORD dwFlags, uCLSSPEC *pClassSpec, QUERYCONTEXT *pQuery, LPWSTR pszCodeBase);
  135. WINOLEAPI GetRunningObjectTable (DWORD reserved, LPRUNNINGOBJECTTABLE *pprot);
  136. #endif
  137. #include <urlmon.h>
  138. #include <propidl.h>
  139. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  140. WINOLEAPI CreateStdProgressIndicator (HWND hwndParent, LPCOLESTR pszTitle, IBindStatusCallback *pIbscCaller, IBindStatusCallback **ppIbsc);
  141. #endif
  142. #ifndef RC_INVOKED
  143. #include <poppack.h>
  144. #endif
  145. #endif