/* * Defines the basic types used by COM interfaces. */ #ifndef __WINE_WTYPES_H #define __WINE_WTYPES_H #include "wintypes.h" /* FIXME: this line should be in rpcndr.h */ typedef unsigned char byte; /* FIXME: and the following group should be in rpcdce.h */ typedef void* RPC_AUTH_IDENTITY_HANDLE; typedef void* RPC_AUTHZ_HANDLE; typedef WORD CLIPFORMAT32, *LPCLIPFORMAT32; DECL_WINELIB_TYPE(CLIPFORMAT) typedef CHAR OLECHAR16; typedef WCHAR OLECHAR32; DECL_WINELIB_TYPE(OLECHAR) typedef LPSTR LPOLESTR16; typedef LPWSTR LPOLESTR32; DECL_WINELIB_TYPE(LPOLESTR) typedef LPCSTR LPCOLESTR16; typedef LPCWSTR LPCOLESTR32; DECL_WINELIB_TYPE(LPCOLESTR) typedef OLECHAR16 *BSTR16; typedef OLECHAR32 *BSTR32; DECL_WINELIB_TYPE(BSTR) typedef BSTR16 *LPBSTR16; typedef BSTR32 *LPBSTR32; DECL_WINELIB_TYPE(LPBSTR) #ifndef GUID_DEFINED #define GUID_DEFINED struct _GUID { DWORD Data1; WORD Data2; WORD Data3; BYTE Data4[8]; }; #endif typedef struct _GUID GUID,*LPGUID; typedef struct _GUID CLSID,*LPCLSID; typedef struct _GUID IID,*LPIID; typedef struct _GUID FMTID,*LPFMTID; #ifdef __cplusplus #define REFGUID const GUID & #define REFCLSID const CLSID & #define REFIID const IID & #define REFFMTID const FMTID & #else // !__cplusplus #define REFGUID const GUID* const #define REFCLSID const CLSID* const #define REFIID const IID* const #define REFFMTID const FMTID* const #endif // !__cplusplus #define DECLARE_HANDLE(a) typedef HANDLE16 a##16; typedef HANDLE32 a##32 DECLARE_HANDLE(HMETAFILEPICT); #undef DECLARE_HANDLE typedef struct _COAUTHIDENTITY { USHORT* User; ULONG UserLength; USHORT* Domain; ULONG DomainLength; USHORT* Password; ULONG PasswordLength; ULONG Flags; } COAUTHIDENTITY; typedef struct _COAUTHINFO { DWORD dwAuthnSvc; DWORD dwAuthzSvc; LPWSTR pwszServerPrincName; DWORD dwAuthnLevel; DWORD dwImpersonationLevel; COAUTHIDENTITY* pAuthIdentityData; DWORD dwCapabilities; } COAUTHINFO; typedef struct _COSERVERINFO { DWORD dwReserved1; LPWSTR pwszName; COAUTHINFO* pAuthInfo; DWORD dwReserved2; } COSERVERINFO; typedef enum tagCLSCTX { CLSCTX_INPROC_SERVER = 0x1, CLSCTX_INPROC_HANDLER = 0x2, CLSCTX_LOCAL_SERVER = 0x4, CLSCTX_INPROC_SERVER16 = 0x8, CLSCTX_REMOTE_SERVER = 0x10, CLSCTX_INPROC_HANDLER16 = 0x20, CLSCTX_INPROC_SERVERX86 = 0x40, CLSCTX_INPROC_HANDLERX86 = 0x80 } CLSCTX; #define CLSCTX_INPROC (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER) #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) typedef unsigned short VARTYPE; typedef ULONG PROPID; typedef struct tagBLOB { ULONG cbSize; BYTE *pBlobData; } BLOB; #ifndef _tagCY_DEFINED #define _tagCY_DEFINED typedef union tagCY { struct { #ifdef BIG_ENDIAN long Hi; long Lo; #else unsigned long Lo; long Hi; #endif } u; LONGLONG int64; } CY; #endif /* _tagCY_DEFINED */ /* * 0 == FALSE and -1 == TRUE */ #define VARIANT_TRUE ((VARIANT_BOOL)0xFFFF) #define VARIANT_FALSE ((VARIANT_BOOL)0x0000) typedef short VARIANT_BOOL,_VARIANT_BOOL; typedef struct tagCLIPDATA { ULONG cbSize; long ulClipFmt; BYTE *pClipData; } CLIPDATA; // Macro to calculate the size of the above pClipData #define CBPCLIPDATA(clipdata) ( (clipdata).cbSize - sizeof((clipdata).ulClipFmt) ) typedef LONG SCODE; #ifndef _FILETIME_ #define _FILETIME_ /* 64 bit number of 100 nanoseconds intervals since January 1, 1601 */ typedef struct { DWORD dwLowDateTime; DWORD dwHighDateTime; } FILETIME, *LPFILETIME; #endif /* _FILETIME_ */ #ifndef _SECURITY_DEFINED #define _SECURITY_DEFINED typedef struct { BYTE Value[6]; } SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY; typedef struct _SID { BYTE Revision; BYTE SubAuthorityCount; SID_IDENTIFIER_AUTHORITY IdentifierAuthority; DWORD SubAuthority[1]; } SID,*PSID; /* * ACL */ typedef struct _ACL { BYTE AclRevision; BYTE Sbz1; WORD AclSize; WORD AceCount; WORD Sbz2; } ACL, *PACL; typedef WORD SECURITY_DESCRIPTOR_CONTROL; /* The security descriptor structure */ typedef struct { BYTE Revision; BYTE Sbz1; SECURITY_DESCRIPTOR_CONTROL Control; PSID Owner; PSID Group; PACL Sacl; PACL Dacl; } SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR; #endif /* _SECURITY_DEFINED */ #endif /* __WINE_WTYPES_H */