#include <apiset.h>
#include <apisetcconv.h>
#include <rpc.h>
#include <rpcndr.h>
#if (NTDDI_VERSION >= NTDDI_VISTA && !defined(_WIN32_WINNT))
#define _WIN32_WINNT 0x0600
#endif
#if (NTDDI_VERSION >= NTDDI_WS03 && !defined(_WIN32_WINNT))
#define _WIN32_WINNT 0x0502
#endif
#if (NTDDI_VERSION >= NTDDI_WINXP && !defined(_WIN32_WINNT))
#define _WIN32_WINNT 0x0501
#endif
#if (NTDDI_VERSION >= NTDDI_WIN2K && !defined(_WIN32_WINNT))
#define _WIN32_WINNT 0x0500
#endif
#if !defined(_COMBASEAPI_H_)
#define _COMBASEAPI_H_
#ifdef _MSC_VER
#pragma once
#endif // _MSC_VER
#include <pshpack8.h>
#ifdef _OLE32_
#define WINOLEAPI STDAPI
#define WINOLEAPI_(type) STDAPI_(type)
#else
#ifdef _68K_
#ifndef REQUIRESAPPLEPASCAL
#define WINOLEAPI EXTERN_C DECLSPEC_IMPORT HRESULT PASCAL
#define WINOLEAPI_(type) EXTERN_C DECLSPEC_IMPORT type PASCAL
#else
#define WINOLEAPI EXTERN_C DECLSPEC_IMPORT PASCAL HRESULT
#define WINOLEAPI_(type) EXTERN_C DECLSPEC_IMPORT PASCAL type
#endif
#else
#define WINOLEAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE
#define WINOLEAPI_(type) EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE
#endif
#endif
#pragma region Application or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#if defined(__cplusplus) && !defined(CINTERFACE)
#ifdef COM_STDMETHOD_CAN_THROW
#define COM_DECLSPEC_NOTHROW
#else
#define COM_DECLSPEC_NOTHROW DECLSPEC_NOTHROW
#endif
#define __STRUCT__ struct
#define interface __STRUCT__
#define STDMETHOD(method) virtual COM_DECLSPEC_NOTHROW HRESULT STDMETHODCALLTYPE method
#define STDMETHOD_(type,method) virtual COM_DECLSPEC_NOTHROW type STDMETHODCALLTYPE method
#define STDMETHODV(method) virtual COM_DECLSPEC_NOTHROW HRESULT STDMETHODVCALLTYPE method
#define STDMETHODV_(type,method) virtual COM_DECLSPEC_NOTHROW type STDMETHODVCALLTYPE method
#define PURE = 0
#define THIS_
#define THIS void
#define DECLARE_INTERFACE(iface) interface DECLSPEC_NOVTABLE iface
#define DECLARE_INTERFACE_(iface, baseiface) interface DECLSPEC_NOVTABLE iface : public baseiface
#define DECLARE_INTERFACE_IID(iface, iid) interface DECLSPEC_UUID(iid) DECLSPEC_NOVTABLE iface
#define DECLARE_INTERFACE_IID_(iface, baseiface, iid) interface DECLSPEC_UUID(iid) DECLSPEC_NOVTABLE iface : public baseiface
#define IFACEMETHOD(method) __override STDMETHOD(method)
#define IFACEMETHOD_(type,method) __override STDMETHOD_(type,method)
#define IFACEMETHODV(method) __override STDMETHODV(method)
#define IFACEMETHODV_(type,method) __override STDMETHODV_(type,method)
#if !defined(BEGIN_INTERFACE)
#if defined(_MPPC_) && ((defined(_MSC_VER) || defined(__SC__) || defined(__MWERKS__)) && !defined(NO_NULL_VTABLE_ENTRY))
#define BEGIN_INTERFACE virtual void a() {}
#define END_INTERFACE
#else
#define BEGIN_INTERFACE
#define END_INTERFACE
#endif
#endif
#ifndef SORTPP_PASS
extern
"C++"
{
template<typename T> _Post_equal_to_(pp) _Post_satisfies_(return == pp) void** IID_PPV_ARGS_Helper(T** pp);
template
<
typename
>
void
**
(
**
);
}
#endif // !SORTPP_PASS
#define IID_PPV_ARGS(ppType) __uuidof(**(ppType)), IID_PPV_ARGS_Helper(ppType)
#else
#define interface struct
#define STDMETHOD(method) HRESULT (STDMETHODCALLTYPE * method)
#define STDMETHOD_(type,method) type (STDMETHODCALLTYPE * method)
#define STDMETHODV(method) HRESULT (STDMETHODVCALLTYPE * method)
#define STDMETHODV_(type,method) type (STDMETHODVCALLTYPE * method)
#define IFACEMETHOD(method) __override STDMETHOD(method)
#define IFACEMETHOD_(type,method) __override STDMETHOD_(type,method)
#define IFACEMETHODV(method) __override STDMETHODV(method)
#define IFACEMETHODV_(type,method) __override STDMETHODV_(type,method)
#if !defined(BEGIN_INTERFACE)
#if defined(_MPPC_)
#define BEGIN_INTERFACE void *b;
#define END_INTERFACE
#else
#define BEGIN_INTERFACE
#define END_INTERFACE
#endif
#endif
#define PURE
#define THIS_ INTERFACE FAR* This,
#define THIS INTERFACE FAR* This
#ifdef CONST_VTABLE
#undef CONST_VTBL
#define CONST_VTBL const
#define DECLARE_INTERFACE(iface) typedef interface iface { \
const struct iface##Vtbl FAR* lpVtbl; \
} iface; \
typedef const struct iface##Vtbl iface##Vtbl; \
const struct iface##Vtbl
#else
#undef CONST_VTBL
#define CONST_VTBL
#define DECLARE_INTERFACE(iface) typedef interface iface { \
struct iface##Vtbl FAR* lpVtbl; \
} iface; \
typedef struct iface##Vtbl iface##Vtbl; \
struct iface##Vtbl
#endif
#define DECLARE_INTERFACE_(iface, baseiface) DECLARE_INTERFACE(iface)
#define DECLARE_INTERFACE_IID(iface, iid) DECLARE_INTERFACE(iface)
#define DECLARE_INTERFACE_IID_(iface, baseiface, iid) DECLARE_INTERFACE_(iface, baseiface)
#endif
#ifndef FARSTRUCT
#ifdef __cplusplus
#define FARSTRUCT FAR
#else
#define FARSTRUCT
#endif // __cplusplus
#endif // FARSTRUCT
#ifndef HUGEP
#if defined(_WIN32) || defined(_MPPC_)
#define HUGEP
#else
#define HUGEP __huge
#endif // WIN32
#endif // HUGEP
#include <stdlib.h>
#define LISet32(li, v) ((li).HighPart = ((LONG) (v)) < 0 ? -1 : 0, (li).LowPart = (v))
#define ULISet32(li, v) ((li).HighPart = 0, (li).LowPart = (v))
#define CLSCTX_INPROC (CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER)
#if (_WIN32_WINNT >= 0x0400) || defined(_WIN32_DCOM)
#define CLSCTX_ALL (CLSCTX_INPROC_SERVER| \
CLSCTX_INPROC_HANDLER| \
CLSCTX_LOCAL_SERVER| \
CLSCTX_REMOTE_SERVER)
#define CLSCTX_SERVER (CLSCTX_INPROC_SERVER|CLSCTX_LOCAL_SERVER|CLSCTX_REMOTE_SERVER)
#else
#define CLSCTX_ALL (CLSCTX_INPROC_SERVER| \
CLSCTX_INPROC_HANDLER| \
CLSCTX_LOCAL_SERVER )
#define CLSCTX_SERVER (CLSCTX_INPROC_SERVER|CLSCTX_LOCAL_SERVER)
#endif
typedef
enum
{
=
0
,
=
1
,
=
2
,
=
4
,
=
8
,
#if (NTDDI_VERSION >= NTDDI_WINTHRESHOLD)
=
0x10
,
#endif
}
;
typedef interface IRpcStubBuffer IRpcStubBuffer;
typedef interface IRpcChannelBuffer IRpcChannelBuffer;
typedef
enum
{
#if (_WIN32_WINNT >= 0x0400) || defined(_WIN32_DCOM)
=
0x0
,
#endif // DCOM
}
;
#include <wtypesbase.h>
#include <unknwnbase.h>
#if defined(__cplusplus) && !defined(CINTERFACE)
extern
"C++"
{
template<typename T> _Post_equal_to_(pp) _Post_satisfies_(return == pp) void** IID_PPV_ARGS_Helper(T** pp)
template
<
typename
>
void
**
(
**
)
{
#pragma prefast(suppress:
6269
,
"Tool issue with unused static_cast"
)
static_cast
<
*>(*
);
return
reinterpret_cast
<
void
**>(
);
}
}
#endif // defined(__cplusplus) && !defined(CINTERFACE)
#include <objidlbase.h>
#include <guiddef.h>
#ifndef INITGUID
#include <cguid.h>
#endif
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#pragma region Desktop or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_Outptr_ LPMALLOC FAR * ppMalloc
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#pragma region Application or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
,
_In_ BOOL fDeleteOnRelease,
_Outptr_ LPSTREAM FAR * ppstm
);
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_Out_ HGLOBAL FAR * phglobal
);
WINOLEAPI_(void)
extern
"C"
__declspec
(dllimport)
void
__stdcall
(
void
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#pragma region Desktop or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
WINOLEAPI_(DWORD)
extern
"C"
__declspec
(dllimport)
__stdcall
(
void
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#if (_WIN32_WINNT >= 0x0400) || defined(_WIN32_DCOM)
#pragma region Application or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_In_opt_ LPVOID pvReserved,
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#pragma region Desktop or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#pragma region Application or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
CoGetCurrentLogicalThreadId
(
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#endif // DCOM
#if (_WIN32_WINNT >= 0x0501)
#pragma region Application or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#pragma region Desktop or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#endif
#pragma region Application or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#if (NTDDI_VERSION >= NTDDI_WIN7)
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_Out_ APTTYPEQUALIFIER* pAptQualifier
);
#endif
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#if (NTDDI_VERSION >= NTDDI_WIN8)
#pragma region Application or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
typedef
struct
{
;
;
;
}
, *
;
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#pragma region Desktop or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_In_ UINT64 ui64ProxyAddress,
_Out_ PServerInformation pServerInformation
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#pragma region Application or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
DECLARE_HANDLE(CO_MTA_USAGE_COOKIE);
struct
{
int
;};
typedef
struct
*
;
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_Out_ CO_MTA_USAGE_COOKIE* pCookie
);
WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_In_ CO_MTA_USAGE_COOKIE Cookie
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#pragma region Desktop or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
);
#if !defined RC_INVOKED
#if defined _M_IX86
#define _CRT_INTERNAL_COMBASE_SYMBOL_PREFIX "_"
#elif defined _M_X64 || defined _M_ARM || defined _M_ARM64
#define _CRT_INTERNAL_COMBASE_SYMBOL_PREFIX ""
#endif
#if defined _EXE_INITIALIZE_MTA && !defined _M_CEE
#pragma comment(lib, "exe_initialize_mta")
#pragma comment(linker, "/include:" _CRT_INTERNAL_COMBASE_SYMBOL_PREFIX "__PLEASE_LINK_WITH_exe_initialize_mta.lib")
#endif
#endif
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#endif
#pragma region Application or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_Outptr_ LPVOID FAR * ppv
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#pragma region Desktop or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_In_opt_ LPVOID pvReserved,
_Outptr_ LPVOID FAR * ppv
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#pragma region Application or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_Out_ LPDWORD lpdwRegister
);
WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
);
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
void
);
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
void
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#pragma region Desktop or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
WINOLEAPI_(ULONG)
extern
"C"
__declspec
(dllimport)
__stdcall
(
void
);
WINOLEAPI_(ULONG)
extern
"C"
__declspec
(dllimport)
__stdcall
(
void
);
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
);
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
);
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_In_ LPSURROGATE pSurrogate
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#pragma region Application or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_In_ DWORD dwDestContext,
_In_opt_ LPVOID pvDestContext,
);
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_In_ DWORD dwDestContext,
_In_opt_ LPVOID pvDestContext,
);
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_COM_Outptr_ LPVOID FAR * ppv
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#pragma region Desktop or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
);
WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_Out_ HRESULT FAR * phresult
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#pragma region Application or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
);
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#pragma region Desktop or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_In_ BOOL fLastUnlockReleases
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#pragma region Application or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_In_ DWORD dwDestContext,
_In_opt_ LPVOID pvDestContext,
_Outptr_ LPMARSHAL FAR * ppMarshal
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#pragma region Desktop or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_In_ LPUNKNOWN pUnkOuter,
_Outptr_ LPUNKNOWN FAR * ppUnkInner
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#pragma region Application or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
typedef
enum
{
=
0x01
,
=
0x02
}
;
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#pragma region Desktop or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
WINOLEAPI_(BOOL)
extern
"C"
__declspec
(dllimport)
__stdcall
(
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#pragma region Application or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
CoMarshalInterThreadInterfaceInStream
(
);
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
CoGetInterfaceAndReleaseStream
(
_COM_Outptr_ LPVOID FAR * ppv
);
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
CoCreateFreeThreadedMarshaler
(
_In_opt_ LPUNKNOWN punkOuter,
_Outptr_ LPUNKNOWN* ppunkMarshal
);
WINOLEAPI_(void)
extern
"C"
__declspec
(dllimport)
void
__stdcall
(
void
);
#if (_WIN32_WINNT >= 0x0501)
WINOLEAPI_(void)
extern
"C"
__declspec
(dllimport)
void
__stdcall
(
_In_ DWORD dwUnloadDelay,
);
#endif
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#if (_WIN32_WINNT >= 0x0600)
#pragma region Desktop or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#endif
#if (_WIN32_WINNT >= 0x0400) || defined(_WIN32_DCOM)
#pragma region Application or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_In_opt_ PSECURITY_DESCRIPTOR pSecDesc,
_In_reads_opt_(cAuthSvc) SOLE_AUTHENTICATION_SERVICE* asAuthSvc,
SOLE_AUTHENTICATION_SERVICE
*
,
_In_opt_ void* pReserved1,
_In_opt_ void* pAuthList,
_In_ DWORD dwCapabilities,
_In_opt_ void* pReserved3
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#pragma region Desktop or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_Outptr_ void** ppInterface
);
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_Out_opt_ DWORD* pwAuthnSvc,
_Out_opt_ DWORD* pAuthzSvc,
_Outptr_opt_ LPOLESTR* pServerPrincName,
_Out_opt_ DWORD* pAuthnLevel,
_Out_opt_ DWORD* pImpLevel,
_Out_opt_ RPC_AUTH_IDENTITY_HANDLE* pAuthInfo,
_Out_opt_ DWORD* pCapabilites
);
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_In_opt_ OLECHAR* pServerPrincName,
_In_opt_ RPC_AUTH_IDENTITY_HANDLE pAuthInfo,
_In_ DWORD dwCapabilities
);
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_Outptr_ IUnknown** ppCopy
);
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_Out_opt_ DWORD* pAuthnSvc,
_Out_opt_ DWORD* pAuthzSvc,
_Outptr_opt_ LPOLESTR* pServerPrincName,
_Out_opt_ DWORD* pAuthnLevel,
_Out_opt_ DWORD* pImpLevel,
_Outptr_opt_result_buffer_(_Inexpressible_("depends on pAuthnSvc")) RPC_AUTHZ_HANDLE* pPrivs,
_Inout_opt_ DWORD* pCapabilities
);
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
void
);
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
void
);
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
CoQueryAuthenticationServices
(
_Outptr_result_buffer_(*pcAuthSvc) SOLE_AUTHENTICATION_SERVICE** asAuthSvc
SOLE_AUTHENTICATION_SERVICE
**
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#pragma region Application or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_In_opt_ IUnknown* pNewObject,
_Outptr_ IUnknown** ppOldObject
);
#define COM_RIGHTS_EXECUTE 1
#define COM_RIGHTS_EXECUTE_LOCAL 2
#define COM_RIGHTS_EXECUTE_REMOTE 4
#define COM_RIGHTS_ACTIVATE_LOCAL 8
#define COM_RIGHTS_ACTIVATE_REMOTE 16
#define COM_RIGHTS_RESERVED1 32
#define COM_RIGHTS_RESERVED2 64
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#endif // DCOM
#pragma region Desktop or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_In_opt_ LPUNKNOWN pUnkOuter,
_COM_Outptr_ _At_(*ppv, _Post_readable_size_(_Inexpressible_(varies))) LPVOID FAR * ppv
);
#if (_WIN32_WINNT >= 0x0400) || defined(_WIN32_DCOM)
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_In_opt_ IUnknown* punkOuter,
_In_opt_ COSERVERINFO* pServerInfo,
_Inout_updates_(dwCount) MULTI_QI* pResults
);
#endif // DCOM
WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
CoRegisterActivationFilter
(
_In_ IActivationFilter* pActivationFilter
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#if (_WIN32_WINNT >= 0x0602)
#pragma region Application or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_In_opt_ IUnknown* punkOuter,
_Inout_updates_(dwCount) MULTI_QI* pResults
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#endif
#pragma region Not Desktop or OneCore Family
#if WINAPI_PARTITION_APP && !(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
__inline _Check_return_ HRESULT CoCreateInstance(
_In_ REFCLSID rclsid,
_In_opt_ LPUNKNOWN pUnkOuter,
_In_ DWORD dwClsContext,
_In_ REFIID riid,
_COM_Outptr_ _At_(*ppv, _Post_readable_size_(_Inexpressible_(varies))) LPVOID FAR* ppv)
{
MULTI_QI OneQI;
HRESULT hr;
OneQI.pItf = NULL;
#ifdef __cplusplus
OneQI.pIID = &riid;
#else
OneQI.pIID = riid;
#endif
hr = CoCreateInstanceFromApp( rclsid, pUnkOuter, dwClsContext, NULL, 1, &OneQI );
#ifdef _PREFAST_
if (SUCCEEDED(hr) && SUCCEEDED(OneQI.hr))
_Analysis_assume_(OneQI.pItf != NULL);
else
_Analysis_assume_(OneQI.pItf == NULL);
#endif
*ppv = OneQI.pItf;
return FAILED(hr) ? hr : OneQI.hr;
}
__inline _Check_return_ HRESULT CoCreateInstanceEx(
_In_ REFCLSID Clsid,
_In_opt_ IUnknown * punkOuter,
_In_ DWORD dwClsCtx,
_In_opt_ COSERVERINFO * pServerInfo,
_In_ DWORD dwCount,
_Inout_updates_(dwCount) MULTI_QI *pResults )
{
return CoCreateInstanceFromApp(Clsid, punkOuter, dwClsCtx, pServerInfo, dwCount, pResults);
}
#endif // WINAPI_PARTITION_APP && !(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#if (_WIN32_WINNT >= 0x0500) || defined(_WIN32_DCOM)
#pragma region Desktop or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
);
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
);
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
);
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
void
);
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_In_opt_ LPVOID pReserved
);
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
CoDisableCallCancellation
(
_In_opt_ LPVOID pReserved
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#endif
#pragma region Application or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_Outptr_ LPOLESTR FAR * lplpsz
);
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
);
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_Outptr_ LPOLESTR FAR * lplpsz
);
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#pragma region Desktop or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_Outptr_ LPOLESTR FAR * lplpszProgID
);
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_In_ LPCOLESTR lpszProgID,
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#pragma region Application or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Check_return_ WINOLEAPI_(int)
extern
"C"
__declspec
(dllimport)
int
__stdcall
(
_Out_writes_to_(cchMax,return) LPOLESTR lpsz,
);
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
);
typedef
struct
tagPROPVARIANT
;
_Check_return_
WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_Out_ PROPVARIANT* pvarDest,
_In_ const PROPVARIANT* pvarSrc
);
WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_Inout_ PROPVARIANT* pvar
);
WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_Inout_updates_(cVariants) PROPVARIANT* rgvars
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#if (_WIN32_WINNT >= 0x0400) || defined(_WIN32_DCOM)
#pragma region Desktop or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#endif // DCOM
#if (_WIN32_WINNT >= 0x0400) || defined(_WIN32_DCOM)
#pragma region Desktop or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_In_reads_(cHandles) LPHANDLE pHandles,
);
typedef
enum
{
=
0
,
=
1
,
=
2
,
=
4
,
=
8
,
COWAIT_DISPATCH_WINDOW_MESSAGES
=
0x10
,
}
;
#if (NTDDI_VERSION >= NTDDI_WIN8)
typedef
enum
{
=
0
,
=
1
,
CWMO_DISPATCH_WINDOW_MESSAGES
=
2
,
}
;
WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_In_reads_(cHandles) const HANDLE* pHandles,
);
#endif // (NTDDI_VERSION >= NTDDI_WIN8)
#define CWMO_MAX_HANDLES 56
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#endif // DCOM
#pragma region Desktop or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#if (_WIN32_WINNT >= 0x0501)
#pragma region Desktop or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
CoInvalidateRemoteMachineBindings
(
_In_ LPOLESTR pszMachineName
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#endif
#if (NTDDI_VERSION >= NTDDI_WINBLUE)
#pragma region Application or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
enum
{
=
0
,
AGILEREFERENCE_DELAYEDMARSHAL
=
1
,
};
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_In_ enum AgileReferenceOptions options,
_COM_Outptr_ IAgileReference** ppAgileReference
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#endif
#pragma region Application or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
typedef HRESULT (STDAPICALLTYPE * LPFNGETCLASSOBJECT) (REFCLSID, REFIID, LPVOID *);
typedef
(
__stdcall
*
) (
const
&,
const
&,
*);
typedef HRESULT (STDAPICALLTYPE * LPFNCANUNLOADNOW)(void);
typedef
(
__stdcall
*
)(
void
);
_Check_return_
STDAPI DllGetClassObject(_In_ REFCLSID rclsid, _In_ REFIID riid, _Outptr_ LPVOID FAR* ppv);
extern
"C"
__stdcall
(
const
&
,
const
&
,
*
);
__control_entrypoint(DllExport)
STDAPI DllCanUnloadNow(void);
extern
"C"
__stdcall
(
void
);
WINOLEAPI_(_Ret_opt_ _Post_writable_byte_size_(cb) __drv_allocatesMem(Mem) _Check_return_ LPVOID)
extern
"C"
__declspec
(dllimport)
__stdcall
(
);
WINOLEAPI_(_Ret_opt_ _Post_writable_byte_size_(cb) _When_(cb > 0, __drv_allocatesMem(Mem) _Check_return_) LPVOID)
extern
"C"
__declspec
(dllimport)
__stdcall
(
_Pre_maybenull_ __drv_freesMem(Mem) _Post_invalid_ LPVOID pv,
);
WINOLEAPI_(void)
extern
"C"
__declspec
(dllimport)
void
__stdcall
(
_Frees_ptr_opt_ LPVOID pv
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#pragma region Desktop or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_Out_ FILETIME FAR * lpFileTime
);
_Check_return_ WINOLEAPI
extern
"C"
__declspec
(dllimport)
__stdcall
(
_In_ LPCOLESTR lpszProgID,
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#ifndef RC_INVOKED
#include <poppack.h>
#endif // RC_INVOKED
#endif // __COMBASEAPI_H__