Sync to trunk r65566.

svn path=/branches/condrv_restructure/; revision=65567
This commit is contained in:
Hermès Bélusca-Maïto
2014-12-05 21:20:35 +00:00
3454 changed files with 260105 additions and 130358 deletions
+1 -1
View File
@@ -74,7 +74,7 @@ __attribute__ ((section(".asmdef")))
ASMGENDATA Table[] =
{
#if defined (_M_IX86) || defined (M_AMD64)
#if defined (_M_IX86) || defined (_M_AMD64)
/* PORTABLE CONSTANTS ********************************************************/
#include "ksx.template.h"
#endif
+10
View File
@@ -67,6 +67,16 @@ $FuncEndName
TRAP_EPILOG $SystemCall
fixme
MEND
#define CR 13
#define LF 10
#define NUL 0
#define ASCII dcb
MACRO
UNIMPLEMENTED $Name
MEND
#else
+2 -1
View File
@@ -217,7 +217,8 @@ allow GCC to optimize away some EH unwind code, at least in DW2 case. */
/* Define to a function attribute for Microsoft hotpatch assembly prefix. */
#ifndef DECLSPEC_HOTPATCH
#ifdef _MSC_VER
#if defined(_MSC_VER) || defined(__clang__)
/* FIXME: http://llvm.org/bugs/show_bug.cgi?id=20888 */
#define DECLSPEC_HOTPATCH
#else
#define DECLSPEC_HOTPATCH __attribute__((__ms_hook_prologue__))
+1 -1
View File
@@ -316,7 +316,7 @@ extern "C" {
#ifndef _WCHAR_T_DEFINED
#define _WCHAR_T_DEFINED
#ifndef __cplusplus
#if defined(_MSC_VER) || !defined(__cplusplus)
typedef unsigned short wchar_t;
#endif
#endif
+9 -1
View File
@@ -1504,6 +1504,7 @@ __INTRIN_INLINE void __int2c(void);
__INTRIN_INLINE void _disable(void);
__INTRIN_INLINE void _enable(void);
__INTRIN_INLINE void __halt(void);
__declspec(noreturn) __INTRIN_INLINE void __fastfail(unsigned int Code);
#ifdef __clang__
#define __debugbreak() __asm__("int $3")
@@ -1532,7 +1533,14 @@ __INTRIN_INLINE void _enable(void)
__INTRIN_INLINE void __halt(void)
{
__asm__("hlt\n\t" : : : "memory");
__asm__("hlt" : : : "memory");
}
__declspec(noreturn)
__INTRIN_INLINE void __fastfail(unsigned int Code)
{
__asm__("int $0x29" : : "c"(Code) : "memory");
__builtin_unreachable();
}
/*** Protected memory management ***/
+10 -1
View File
@@ -587,6 +587,16 @@ void __ud2(void);
#if (_MSC_VER >= 1700)
__declspec(noreturn) void __fastfail(unsigned int Code);
#pragma intrinsic(__fastfail)
#else
__declspec(noreturn) __forceinline
void __fastfail(unsigned int Code)
{
__asm
{
mov ecx, Code
int 29h
}
}
#endif
#endif
#if defined(_M_ARM)
@@ -641,7 +651,6 @@ void __forceinline __invlpg_fixed(void * Address)
#elif defined(_M_AMD64)
void __invlpg(void * Address);
#pragma intrinsic(__invlpg)
#elif defined(_M_AMD64)
unsigned __int64 __readcr0(void);
#pragma intrinsic(__readcr0)
unsigned __int64 __readcr2(void);
-5
View File
@@ -23,11 +23,6 @@ extern "C" {
#define _RTC_ERRTYPE_IGNORE -1
#define _RTC_ERRTYPE_ASK -2
#ifndef _WCHAR_T_DEFINED
#define _WCHAR_T_DEFINED
typedef unsigned short wchar_t;
#endif
typedef int (__cdecl *_RTC_error_fn)(int,const char *,int,const char *,const char *,...);
typedef int (__cdecl *_RTC_error_fnW)(int,const wchar_t *,int,const wchar_t *,const wchar_t *,...);
+1
View File
@@ -134,6 +134,7 @@ extern "C" {
#define _IOERR 0x0020
#define _IOSTRG 0x0040
#define _IORW 0x0080
#define _USERBUF 0x0100
#define _TWO_DIGIT_EXPONENT 0x1
-15
View File
@@ -18,21 +18,6 @@
extern "C" {
#endif
#ifndef _CRTIMP
#define _CRTIMP __declspec(dllimport)
#endif
#ifndef _WCHAR_T_DEFINED
typedef unsigned short wchar_t;
#define _WCHAR_T_DEFINED
#endif
#ifndef _WCTYPE_T_DEFINED
typedef unsigned short wint_t;
typedef unsigned short wctype_t;
#define _WCTYPE_T_DEFINED
#endif
#ifndef WEOF
#define WEOF (wint_t)(0xFFFF)
#endif
+86 -15
View File
@@ -41,18 +41,39 @@ WINAPI
VDDTerminateVDM(VOID);
/*
* IRQ services
*/
WORD
WINAPI
VDDReserveIrqLine
(
IN HANDLE hVdd,
IN WORD IrqLine
);
BOOL
WINAPI
VDDReleaseIrqLine
(
IN HANDLE hVdd,
IN WORD IrqLine
);
/*
* I/O Port services
*/
typedef VOID (*PFNVDD_INB) (WORD iport, PBYTE data);
typedef VOID (*PFNVDD_INW) (WORD iport, PWORD data);
typedef VOID (*PFNVDD_INSB) (WORD iport, PBYTE data, WORD count);
typedef VOID (*PFNVDD_INSW) (WORD iport, PWORD data, WORD count);
typedef VOID (*PFNVDD_OUTB) (WORD iport, BYTE data);
typedef VOID (*PFNVDD_OUTW) (WORD iport, WORD data);
typedef VOID (*PFNVDD_OUTSB) (WORD iport, PBYTE data, WORD count);
typedef VOID (*PFNVDD_OUTSW) (WORD iport, PWORD data, WORD count);
typedef VOID (WINAPI *PFNVDD_INB) (WORD iport, PBYTE data);
typedef VOID (WINAPI *PFNVDD_INW) (WORD iport, PWORD data);
typedef VOID (WINAPI *PFNVDD_INSB) (WORD iport, PBYTE data, WORD count);
typedef VOID (WINAPI *PFNVDD_INSW) (WORD iport, PWORD data, WORD count);
typedef VOID (WINAPI *PFNVDD_OUTB) (WORD iport, BYTE data);
typedef VOID (WINAPI *PFNVDD_OUTW) (WORD iport, WORD data);
typedef VOID (WINAPI *PFNVDD_OUTSB) (WORD iport, PBYTE data, WORD count);
typedef VOID (WINAPI *PFNVDD_OUTSW) (WORD iport, PWORD data, WORD count);
typedef struct _VDD_IO_HANDLERS
{
@@ -76,19 +97,69 @@ BOOL
WINAPI
VDDInstallIOHook
(
HANDLE hVdd,
WORD cPortRange,
PVDD_IO_PORTRANGE pPortRange,
PVDD_IO_HANDLERS IOhandler
IN HANDLE hVdd,
IN WORD cPortRange,
IN PVDD_IO_PORTRANGE pPortRange,
IN PVDD_IO_HANDLERS IOhandler
);
VOID
WINAPI
VDDDeInstallIOHook
(
HANDLE hVdd,
WORD cPortRange,
PVDD_IO_PORTRANGE pPortRange
IN HANDLE hVdd,
IN WORD cPortRange,
IN PVDD_IO_PORTRANGE pPortRange
);
/*
* DMA services
*/
typedef struct _VDD_DMA_INFO
{
WORD addr;
WORD count;
WORD page;
BYTE status;
BYTE mode;
BYTE mask;
} VDD_DMA_INFO, *PVDD_DMA_INFO;
#define VDD_DMA_ADDR 0x01
#define VDD_DMA_COUNT 0x02
#define VDD_DMA_PAGE 0x04
#define VDD_DMA_STATUS 0x08
#define VDD_DMA_ALL (VDD_DMA_ADDR | VDD_DMA_COUNT | VDD_DMA_PAGE | VDD_DMA_STATUS)
DWORD
WINAPI
VDDRequestDMA
(
IN HANDLE hVdd,
IN WORD iChannel,
IN OUT PVOID Buffer,
IN DWORD length
);
BOOL
WINAPI
VDDQueryDMA
(
IN HANDLE hVdd,
IN WORD iChannel,
IN PVDD_DMA_INFO pDmaInfo
);
BOOL
WINAPI
VDDSetDMA
(
IN HANDLE hVdd,
IN WORD iChannel,
IN WORD fDMA,
IN PVDD_DMA_INFO pDmaInfo
);
+1 -1
View File
@@ -1670,8 +1670,8 @@ typedef struct {
extern HAL_DISPATCH HalDispatchTable;
#define HALDISPATCH (&HalDispatchTable)
#else
extern PHAL_DISPATCH HalDispatchTable;
__CREATE_NTOS_DATA_IMPORT_ALIAS(HalDispatchTable)
extern PHAL_DISPATCH HalDispatchTable;
#define HALDISPATCH HalDispatchTable
#endif
+95 -115
View File
@@ -870,11 +870,11 @@ typedef VOID
(NTAPI *PRTL_FREE_STRING_ROUTINE)(
_In_ __drv_freesMem(Mem) _Post_invalid_ PVOID Buffer);
extern const PRTL_ALLOCATE_STRING_ROUTINE RtlAllocateStringRoutine;
extern const PRTL_FREE_STRING_ROUTINE RtlFreeStringRoutine;
extern NTKERNELAPI const PRTL_ALLOCATE_STRING_ROUTINE RtlAllocateStringRoutine;
extern NTKERNELAPI const PRTL_FREE_STRING_ROUTINE RtlFreeStringRoutine;
#if _WIN32_WINNT >= 0x0600
extern const PRTL_REALLOCATE_STRING_ROUTINE RtlReallocateStringRoutine;
extern NTKERNELAPI const PRTL_REALLOCATE_STRING_ROUTINE RtlReallocateStringRoutine;
#endif
_Function_class_(RTL_HEAP_COMMIT_ROUTINE)
@@ -4917,26 +4917,6 @@ typedef struct _FS_FILTER_CALLBACKS {
PFS_FILTER_COMPLETION_CALLBACK PostReleaseForModifiedPageWriter;
} FS_FILTER_CALLBACKS, *PFS_FILTER_CALLBACKS;
#if (NTDDI_VERSION >= NTDDI_WINXP)
NTKERNELAPI
NTSTATUS
NTAPI
FsRtlRegisterFileSystemFilterCallbacks(
_In_ struct _DRIVER_OBJECT *FilterDriverObject,
_In_ PFS_FILTER_CALLBACKS Callbacks);
#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
#if (NTDDI_VERSION >= NTDDI_VISTA)
NTKERNELAPI
NTSTATUS
NTAPI
FsRtlNotifyStreamFileObject(
_In_ struct _FILE_OBJECT * StreamFileObject,
_In_opt_ struct _DEVICE_OBJECT *DeviceObjectHint,
_In_ FS_FILTER_STREAM_FO_NOTIFICATION_TYPE NotificationType,
_In_ BOOLEAN SafeToRecurse);
#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
extern NTKERNELAPI KSPIN_LOCK IoStatisticsLock;
extern NTKERNELAPI ULONG IoReadOperationCount;
extern NTKERNELAPI ULONG IoWriteOperationCount;
@@ -8372,126 +8352,126 @@ FsRtlRemovePerFileObjectContext(
_In_opt_ PVOID OwnerId,
_In_opt_ PVOID InstanceId);
#define FsRtlFastLock(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11) ( \
FsRtlPrivateLock(A1, A2, A3, A4, A5, A6, A7, A8, A9, NULL, A10, A11) \
)
NTKERNELAPI
NTSTATUS
NTAPI
FsRtlRegisterFileSystemFilterCallbacks(
_In_ struct _DRIVER_OBJECT *FilterDriverObject,
_In_ PFS_FILTER_CALLBACKS Callbacks);
#define FsRtlAreThereCurrentFileLocks(FL) ( \
((FL)->FastIoIsQuestionable) \
)
#if (NTDDI_VERSION >= NTDDI_VISTA)
NTKERNELAPI
NTSTATUS
NTAPI
FsRtlNotifyStreamFileObject(
_In_ struct _FILE_OBJECT * StreamFileObject,
_In_opt_ struct _DEVICE_OBJECT *DeviceObjectHint,
_In_ FS_FILTER_STREAM_FO_NOTIFICATION_TYPE NotificationType,
_In_ BOOLEAN SafeToRecurse);
#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
#define FsRtlIncrementLockRequestsInProgress(FL) { \
ASSERT( (FL)->LockRequestsInProgress >= 0 ); \
(void) \
(InterlockedIncrement((LONG volatile *)&((FL)->LockRequestsInProgress)));\
#define FsRtlFastLock(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11) \
FsRtlPrivateLock(A1, A2, A3, A4, A5, A6, A7, A8, A9, NULL, A10, A11)
#define FsRtlAreThereCurrentFileLocks(FL) \
((FL)->FastIoIsQuestionable)
#define FsRtlIncrementLockRequestsInProgress(FL) { \
ASSERT((FL)->LockRequestsInProgress >= 0); \
(void) \
(InterlockedIncrement((LONG volatile *)&((FL)->LockRequestsInProgress))); \
}
#define FsRtlDecrementLockRequestsInProgress(FL) { \
ASSERT( (FL)->LockRequestsInProgress > 0 ); \
(void) \
(InterlockedDecrement((LONG volatile *)&((FL)->LockRequestsInProgress)));\
#define FsRtlDecrementLockRequestsInProgress(FL) { \
ASSERT((FL)->LockRequestsInProgress > 0); \
(void) \
(InterlockedDecrement((LONG volatile *)&((FL)->LockRequestsInProgress))); \
}
#ifdef _NTSYSTEM_
extern const UCHAR * const FsRtlLegalAnsiCharacterArray;
#define LEGAL_ANSI_CHARACTER_ARRAY FsRtlLegalAnsiCharacterArray
#else
extern const UCHAR * const *FsRtlLegalAnsiCharacterArray;
__CREATE_NTOS_DATA_IMPORT_ALIAS(FsRtlLegalAnsiCharacterArray)
extern const UCHAR * const *FsRtlLegalAnsiCharacterArray;
#define LEGAL_ANSI_CHARACTER_ARRAY (*FsRtlLegalAnsiCharacterArray)
#endif
#define FsRtlIsAnsiCharacterWild(C) ( \
FlagOn(LEGAL_ANSI_CHARACTER_ARRAY[(UCHAR)(C)], FSRTL_WILD_CHARACTER ) \
)
#define FsRtlIsAnsiCharacterWild(C) \
FlagOn(LEGAL_ANSI_CHARACTER_ARRAY[(UCHAR)(C)], FSRTL_WILD_CHARACTER)
#define FsRtlIsAnsiCharacterLegalFat(C, WILD) ( \
FlagOn(LEGAL_ANSI_CHARACTER_ARRAY[(UCHAR)(C)], (FSRTL_FAT_LEGAL) | \
((WILD) ? FSRTL_WILD_CHARACTER : 0 )) \
)
#define FsRtlIsAnsiCharacterLegalFat(C, WILD) \
FlagOn(LEGAL_ANSI_CHARACTER_ARRAY[(UCHAR)(C)], (FSRTL_FAT_LEGAL) | \
((WILD) ? FSRTL_WILD_CHARACTER : 0 ))
#define FsRtlIsAnsiCharacterLegalHpfs(C, WILD) ( \
FlagOn(LEGAL_ANSI_CHARACTER_ARRAY[(UCHAR)(C)], (FSRTL_HPFS_LEGAL) | \
((WILD) ? FSRTL_WILD_CHARACTER : 0 )) \
)
#define FsRtlIsAnsiCharacterLegalHpfs(C, WILD) \
FlagOn(LEGAL_ANSI_CHARACTER_ARRAY[(UCHAR)(C)], (FSRTL_HPFS_LEGAL) | \
((WILD) ? FSRTL_WILD_CHARACTER : 0 ))
#define FsRtlIsAnsiCharacterLegalNtfs(C, WILD) ( \
FlagOn(LEGAL_ANSI_CHARACTER_ARRAY[(UCHAR)(C)], (FSRTL_NTFS_LEGAL) | \
((WILD) ? FSRTL_WILD_CHARACTER : 0 )) \
)
#define FsRtlIsAnsiCharacterLegalNtfs(C, WILD) \
FlagOn(LEGAL_ANSI_CHARACTER_ARRAY[(UCHAR)(C)], (FSRTL_NTFS_LEGAL) | \
((WILD) ? FSRTL_WILD_CHARACTER : 0 ))
#define FsRtlIsAnsiCharacterLegalNtfsStream(C,WILD_OK) ( \
FsRtlTestAnsiCharacter((C), TRUE, (WILD_OK), FSRTL_NTFS_STREAM_LEGAL) \
)
#define FsRtlIsAnsiCharacterLegalNtfsStream(C,WILD_OK) \
FsRtlTestAnsiCharacter((C), TRUE, (WILD_OK), FSRTL_NTFS_STREAM_LEGAL)
#define FsRtlIsAnsiCharacterLegal(C,FLAGS) ( \
FsRtlTestAnsiCharacter((C), TRUE, FALSE, (FLAGS)) \
)
#define FsRtlIsAnsiCharacterLegal(C,FLAGS) \
FsRtlTestAnsiCharacter((C), TRUE, FALSE, (FLAGS))
#define FsRtlTestAnsiCharacter(C, DEFAULT_RET, WILD_OK, FLAGS) ( \
((SCHAR)(C) < 0) ? DEFAULT_RET : \
FlagOn( LEGAL_ANSI_CHARACTER_ARRAY[(C)], \
(FLAGS) | \
((WILD_OK) ? FSRTL_WILD_CHARACTER : 0) ) \
)
#define FsRtlTestAnsiCharacter(C, DEFAULT_RET, WILD_OK, FLAGS) \
(((SCHAR)(C) < 0) ? DEFAULT_RET : \
FlagOn(LEGAL_ANSI_CHARACTER_ARRAY[(C)], \
(FLAGS) | ((WILD_OK) ? FSRTL_WILD_CHARACTER : 0)))
#define FsRtlIsLeadDbcsCharacter(DBCS_CHAR) ( \
(BOOLEAN)((UCHAR)(DBCS_CHAR) < 0x80 ? FALSE : \
(NLS_MB_CODE_PAGE_TAG && \
(NLS_OEM_LEAD_BYTE_INFO[(UCHAR)(DBCS_CHAR)] != 0))) \
)
#define FsRtlIsLeadDbcsCharacter(DBCS_CHAR) \
((BOOLEAN)((UCHAR)(DBCS_CHAR) < 0x80 ? FALSE : \
(NLS_MB_CODE_PAGE_TAG && \
(NLS_OEM_LEAD_BYTE_INFO[(UCHAR)(DBCS_CHAR)] != 0))))
#define FsRtlIsUnicodeCharacterWild(C) ( \
(((C) >= 0x40) ? \
FALSE : \
FlagOn(LEGAL_ANSI_CHARACTER_ARRAY[(C)], FSRTL_WILD_CHARACTER )) \
)
#define FsRtlIsUnicodeCharacterWild(C) \
((((C) >= 0x40) ? FALSE : \
FlagOn(LEGAL_ANSI_CHARACTER_ARRAY[(C)], FSRTL_WILD_CHARACTER )))
#define FsRtlInitPerFileContext( _fc, _owner, _inst, _cb) \
((_fc)->OwnerId = (_owner), \
(_fc)->InstanceId = (_inst), \
#define FsRtlInitPerFileContext(_fc, _owner, _inst, _cb) \
((_fc)->OwnerId = (_owner), \
(_fc)->InstanceId = (_inst), \
(_fc)->FreeCallback = (_cb))
#define FsRtlGetPerFileContextPointer(_fo) \
(FsRtlSupportsPerFileContexts(_fo) ? \
FsRtlGetPerStreamContextPointer(_fo)->FileContextSupportPointer : \
NULL)
#define FsRtlGetPerFileContextPointer(_fo) \
(FsRtlSupportsPerFileContexts(_fo) ? \
FsRtlGetPerStreamContextPointer(_fo)->FileContextSupportPointer : NULL)
#define FsRtlSupportsPerFileContexts(_fo) \
((FsRtlGetPerStreamContextPointer(_fo) != NULL) && \
(FsRtlGetPerStreamContextPointer(_fo)->Version >= FSRTL_FCB_HEADER_V1) && \
#define FsRtlSupportsPerFileContexts(_fo) \
((FsRtlGetPerStreamContextPointer(_fo) != NULL) && \
(FsRtlGetPerStreamContextPointer(_fo)->Version >= FSRTL_FCB_HEADER_V1) && \
(FsRtlGetPerStreamContextPointer(_fo)->FileContextSupportPointer != NULL))
#define FsRtlSetupAdvancedHeaderEx( _advhdr, _fmutx, _fctxptr ) \
{ \
FsRtlSetupAdvancedHeader( _advhdr, _fmutx ); \
if ((_fctxptr) != NULL) { \
(_advhdr)->FileContextSupportPointer = (_fctxptr); \
} \
#define FsRtlSetupAdvancedHeaderEx(_advhdr, _fmutx, _fctxptr) \
{ \
FsRtlSetupAdvancedHeader( _advhdr, _fmutx ); \
if ((_fctxptr) != NULL) { \
(_advhdr)->FileContextSupportPointer = (_fctxptr); \
} \
}
#define FsRtlGetPerStreamContextPointer(FO) ( \
(PFSRTL_ADVANCED_FCB_HEADER)(FO)->FsContext \
)
#define FsRtlGetPerStreamContextPointer(FO) \
((PFSRTL_ADVANCED_FCB_HEADER)(FO)->FsContext)
#define FsRtlInitPerStreamContext(PSC, O, I, FC) ( \
(PSC)->OwnerId = (O), \
(PSC)->InstanceId = (I), \
(PSC)->FreeCallback = (FC) \
)
#define FsRtlInitPerStreamContext(PSC, O, I, FC) \
((PSC)->OwnerId = (O), \
(PSC)->InstanceId = (I), \
(PSC)->FreeCallback = (FC))
#define FsRtlSupportsPerStreamContexts(FO) ( \
(BOOLEAN)((NULL != FsRtlGetPerStreamContextPointer(FO) && \
FlagOn(FsRtlGetPerStreamContextPointer(FO)->Flags2, \
FSRTL_FLAG2_SUPPORTS_FILTER_CONTEXTS)) \
)
#define FsRtlSupportsPerStreamContexts(FO) \
((BOOLEAN)((NULL != FsRtlGetPerStreamContextPointer(FO) && \
FlagOn(FsRtlGetPerStreamContextPointer(FO)->Flags2, \
FSRTL_FLAG2_SUPPORTS_FILTER_CONTEXTS)))
#define FsRtlLookupPerStreamContext(_sc, _oid, _iid) \
(((NULL != (_sc)) && \
FlagOn((_sc)->Flags2,FSRTL_FLAG2_SUPPORTS_FILTER_CONTEXTS) && \
!IsListEmpty(&(_sc)->FilterContexts)) ? \
FsRtlLookupPerStreamContextInternal((_sc), (_oid), (_iid)) : \
NULL)
#define FsRtlLookupPerStreamContext(_sc, _oid, _iid) \
(((NULL != (_sc)) && \
FlagOn((_sc)->Flags2,FSRTL_FLAG2_SUPPORTS_FILTER_CONTEXTS) && \
!IsListEmpty(&(_sc)->FilterContexts)) ? \
FsRtlLookupPerStreamContextInternal((_sc), (_oid), (_iid)) : NULL)
_IRQL_requires_max_(APC_LEVEL)
FORCEINLINE
@@ -8520,12 +8500,12 @@ FsRtlSetupAdvancedHeader(
#endif
}
#define FsRtlInitPerFileObjectContext(_fc, _owner, _inst) \
#define FsRtlInitPerFileObjectContext(_fc, _owner, _inst) \
((_fc)->OwnerId = (_owner), (_fc)->InstanceId = (_inst))
#define FsRtlCompleteRequest(IRP,STATUS) { \
(IRP)->IoStatus.Status = (STATUS); \
IoCompleteRequest( (IRP), IO_DISK_INCREMENT ); \
#define FsRtlCompleteRequest(IRP, STATUS) { \
(IRP)->IoStatus.Status = (STATUS); \
IoCompleteRequest( (IRP), IO_DISK_INCREMENT ); \
}
/* Common Cache Types */
@@ -10993,8 +10973,8 @@ HalGetDmaAlignmentRequirement(
extern PUSHORT NlsOemLeadByteInfo;
#define NLS_OEM_LEAD_BYTE_INFO NlsOemLeadByteInfo
#else
extern PUSHORT *NlsOemLeadByteInfo;
__CREATE_NTOS_DATA_IMPORT_ALIAS(NlsOemLeadByteInfo)
extern PUSHORT *NlsOemLeadByteInfo;
#define NLS_OEM_LEAD_BYTE_INFO (*NlsOemLeadByteInfo)
#endif
+23 -24
View File
@@ -139,7 +139,7 @@ extern "C" {
#ifdef _M_IX86
#define __SYMBOL(_Name) "_"#_Name
#define __IMPORTSYMBOL(_Name) "__imp__"#_Name
#define __IMPORTNAME(_Name) _imp__##_Name
#define __IMPORTNAME(_Name) __imp__##_Name
#else
#define __SYMBOL(_Name) #_Name
#define __IMPORTSYMBOL(_Name) "__imp_"#_Name
@@ -586,11 +586,11 @@ extern BOOLEAN NlsMbCodePageTag;
extern BOOLEAN NlsMbOemCodePageTag;
#define NLS_MB_OEM_CODE_PAGE_TAG NlsMbOemCodePageTag
#else
extern BOOLEAN *NlsMbCodePageTag;
__CREATE_NTOS_DATA_IMPORT_ALIAS(NlsMbCodePageTag)
extern BOOLEAN *NlsMbCodePageTag;
#define NLS_MB_CODE_PAGE_TAG (*NlsMbCodePageTag)
extern BOOLEAN *NlsMbOemCodePageTag;
__CREATE_NTOS_DATA_IMPORT_ALIAS(NlsMbOemCodePageTag)
extern BOOLEAN *NlsMbOemCodePageTag;
#define NLS_MB_OEM_CODE_PAGE_TAG (*NlsMbOemCodePageTag)
#endif
@@ -1661,8 +1661,8 @@ extern NTSYSAPI volatile CCHAR KeNumberProcessors;
#elif (NTDDI_VERSION >= NTDDI_WINXP)
extern NTSYSAPI CCHAR KeNumberProcessors;
#else
extern PCCHAR KeNumberProcessors;
__CREATE_NTOS_DATA_IMPORT_ALIAS(KeNumberProcessors)
extern PCCHAR KeNumberProcessors;
#endif
@@ -1815,8 +1815,8 @@ typedef enum _MM_SYSTEM_SIZE {
} MM_SYSTEMSIZE;
#ifndef _NTSYSTEM_
extern PBOOLEAN Mm64BitPhysicalAddress;
__CREATE_NTOS_DATA_IMPORT_ALIAS(Mm64BitPhysicalAddress)
extern PBOOLEAN Mm64BitPhysicalAddress;
#endif
extern NTKERNELAPI PVOID MmBadPointer;
@@ -7859,17 +7859,6 @@ extern POBJECT_TYPE NTSYSAPI PsThreadType;
extern POBJECT_TYPE NTSYSAPI SeTokenObjectType;
extern POBJECT_TYPE NTSYSAPI PsProcessType;
#else
extern POBJECT_TYPE *CmKeyObjectType;
extern POBJECT_TYPE *IoFileObjectType;
extern POBJECT_TYPE *ExEventObjectType;
extern POBJECT_TYPE *ExSemaphoreObjectType;
extern POBJECT_TYPE *TmTransactionManagerObjectType;
extern POBJECT_TYPE *TmResourceManagerObjectType;
extern POBJECT_TYPE *TmEnlistmentObjectType;
extern POBJECT_TYPE *TmTransactionObjectType;
extern POBJECT_TYPE *PsProcessType;
extern POBJECT_TYPE *PsThreadType;
extern POBJECT_TYPE *SeTokenObjectType;
__CREATE_NTOS_DATA_IMPORT_ALIAS(CmKeyObjectType)
__CREATE_NTOS_DATA_IMPORT_ALIAS(IoFileObjectType)
__CREATE_NTOS_DATA_IMPORT_ALIAS(ExEventObjectType)
@@ -7881,6 +7870,17 @@ __CREATE_NTOS_DATA_IMPORT_ALIAS(TmTransactionObjectType)
__CREATE_NTOS_DATA_IMPORT_ALIAS(PsProcessType)
__CREATE_NTOS_DATA_IMPORT_ALIAS(PsThreadType)
__CREATE_NTOS_DATA_IMPORT_ALIAS(SeTokenObjectType)
extern POBJECT_TYPE *CmKeyObjectType;
extern POBJECT_TYPE *IoFileObjectType;
extern POBJECT_TYPE *ExEventObjectType;
extern POBJECT_TYPE *ExSemaphoreObjectType;
extern POBJECT_TYPE *TmTransactionManagerObjectType;
extern POBJECT_TYPE *TmResourceManagerObjectType;
extern POBJECT_TYPE *TmEnlistmentObjectType;
extern POBJECT_TYPE *TmTransactionObjectType;
extern POBJECT_TYPE *PsProcessType;
extern POBJECT_TYPE *PsThreadType;
extern POBJECT_TYPE *SeTokenObjectType;
#endif
@@ -11061,9 +11061,9 @@ RtlCheckBit(
# define __assert_annotationW(msg) __annotation(L"Debug", L"AssertFail", msg)
#else
# define __assert_annotationA(msg) \
DbgPrint("Assertion %s(%d): %s", __FILE__, __LINE__, msg)
DbgPrint("Assertion failed at %s(%d): %s\n", __FILE__, __LINE__, msg)
# define __assert_annotationW(msg) \
DbgPrint("Assertion %s(%d): %S", __FILE__, __LINE__, msg)
DbgPrint("Assertion failed at %s(%d): %S\n", __FILE__, __LINE__, msg)
#endif
#define NT_VERIFY(exp) \
@@ -15794,11 +15794,11 @@ extern BOOLEAN KdDebuggerEnabled;
extern BOOLEAN KdDebuggerNotPresent;
#define KD_DEBUGGER_NOT_PRESENT KdDebuggerNotPresent
#else
extern BOOLEAN *KdDebuggerEnabled;
__CREATE_NTOS_DATA_IMPORT_ALIAS(KdDebuggerEnabled)
extern BOOLEAN *KdDebuggerEnabled;
#define KD_DEBUGGER_ENABLED (*KdDebuggerEnabled)
extern BOOLEAN *KdDebuggerNotPresent;
__CREATE_NTOS_DATA_IMPORT_ALIAS(KdDebuggerNotPresent)
extern BOOLEAN *KdDebuggerNotPresent;
#define KD_DEBUGGER_NOT_PRESENT (*KdDebuggerNotPresent)
#endif
@@ -16091,7 +16091,6 @@ typedef struct _TRANSACTIONMANAGER_RECOVERY_INFORMATION {
ULONGLONG LastRecoveredLsn;
} TRANSACTIONMANAGER_RECOVERY_INFORMATION, *PTRANSACTIONMANAGER_RECOVERY_INFORMATION;
typedef struct _TRANSACTION_PROPERTIES_INFORMATION {
ULONG IsolationLevel;
ULONG IsolationFlags;
@@ -16140,7 +16139,7 @@ typedef enum _KTMOBJECT_TYPE {
typedef struct _KTMOBJECT_CURSOR {
GUID LastQuery;
unsigned long ObjectIdCount;
ULONG ObjectIdCount;
GUID ObjectIds[1];
} KTMOBJECT_CURSOR, *PKTMOBJECT_CURSOR;
@@ -16148,14 +16147,14 @@ typedef enum _TRANSACTION_INFORMATION_CLASS {
TransactionBasicInformation,
TransactionPropertiesInformation,
TransactionEnlistmentInformation,
TransactionSuperiorEnlistmentInformation,
TransactionSuperiorEnlistmentInformation
} TRANSACTION_INFORMATION_CLASS;
typedef enum _TRANSACTIONMANAGER_INFORMATION_CLASS {
TransactionManagerBasicInformation,
TransactionManagerLogInformation,
TransactionManagerLogPathInformation,
TransactionManagerRecoveryInformation = 4,
TransactionManagerRecoveryInformation = 4
} TRANSACTIONMANAGER_INFORMATION_CLASS;
typedef enum _RESOURCEMANAGER_INFORMATION_CLASS {
-28
View File
@@ -1,28 +0,0 @@
#ifndef __D3DRMWIN_H__
#define __D3DRMWIN_H__
#ifndef WIN32
#define WIN32
#endif
#include "d3drm.h"
#include "ddraw.h"
#include "d3d.h"
#undef INTERFACE
#define INTERFACE IDirect3DRMWinDevice
DECLARE_INTERFACE_(IDirect3DRMWinDevice, IDirect3DRMObject)
{
IUNKNOWN_METHODS(PURE);
IDIRECT3DRMOBJECT_METHODS(PURE);
STDMETHOD(HandlePaint) (THIS_ HDC hdc) PURE;
STDMETHOD(HandleActivate) (THIS_ WORD wparam) PURE;
};
DEFINE_GUID(IID_IDirect3DRMWinDevice, 0xC5016CC0, 0xD273, 0x11CE, 0xAC, 0x48, 0x0, 0x0, 0xC0, 0x38, 0x25, 0xA1);
WIN_TYPES(IDirect3DRMWinDevice, DIRECT3DRMWINDEVICE);
#endif
+366
View File
@@ -0,0 +1,366 @@
/*
* DirectSound driver
* (DirectX 5 version)
*
* Copyright (C) 2000 Ove Kaaven
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef __WINE_DSDRIVER_H
#define __WINE_DSDRIVER_H
#ifdef __cplusplus
extern "C" {
#endif
/*****************************************************************************
* Predeclare the interfaces
*/
DEFINE_GUID(IID_IDsDriver, 0x8C4233C0l, 0xB4CC, 0x11CE, 0x92, 0x94, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00);
typedef struct IDsDriver *PIDSDRIVER;
DEFINE_GUID(IID_IDsDriverBuffer, 0x8C4233C1l, 0xB4CC, 0x11CE, 0x92, 0x94, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00);
typedef struct IDsDriverBuffer *PIDSDRIVERBUFFER;
DEFINE_GUID(IID_IDsDriverPropertySet, 0x0F6F2E8E0, 0xD842, 0x11D0, 0x8F, 0x75, 0x00, 0xC0, 0x4F, 0xC2, 0x8A, 0xCA);
typedef struct IDsDriverPropertySet *PIDSDRIVERPROPERTYSET;
DEFINE_GUID(IID_IDsDriverNotify, 0x00363EF44, 0x3B57, 0x11D3, 0xAC, 0x79, 0x00, 0x10, 0x5A, 0x01, 0x7f, 0xe1);
typedef struct IDsDriverNotify *PIDSDRIVERNOTIFY;
DEFINE_GUID(IID_IDsCaptureDriver, 0x03DD10C47, 0x74FB, 0x11D3, 0x90, 0x49, 0xCB, 0xB4, 0xB3, 0x2E, 0xAA, 0x08);
typedef struct IDsCaptureDriver *PIDSCDRIVER;
DEFINE_GUID(IID_IDsCaptureDriverBuffer, 0x03DD10C48, 0x74FB, 0x11D3, 0x90, 0x49, 0xCB, 0xB4, 0xB3, 0x2E, 0xAA, 0x08);
typedef struct IDsCaptureDriverBuffer *PIDSCDRIVERBUFFER;
#define DSDDESC_DOMMSYSTEMOPEN 0x00000001
#define DSDDESC_DOMMSYSTEMSETFORMAT 0x00000002
#define DSDDESC_USESYSTEMMEMORY 0x00000004
#define DSDDESC_DONTNEEDPRIMARYLOCK 0x00000008
#define DSDDESC_DONTNEEDSECONDARYLOCK 0x00000010
#define DSDDESC_DONTNEEDWRITELEAD 0x00000020
#define DSDHEAP_NOHEAP 0
#define DSDHEAP_CREATEHEAP 1
#define DSDHEAP_USEDIRECTDRAWHEAP 2
#define DSDHEAP_PRIVATEHEAP 3
typedef struct _DSDRIVERDESC
{
DWORD dwFlags;
CHAR szDesc[256];
CHAR szDrvname[256];
DWORD dnDevNode;
WORD wVxdId;
WORD wReserved;
ULONG ulDeviceNum;
DWORD dwHeapType;
LPVOID pvDirectDrawHeap;
DWORD dwMemStartAddress;
DWORD dwMemEndAddress;
DWORD dwMemAllocExtra;
LPVOID pvReserved1;
LPVOID pvReserved2;
} DSDRIVERDESC,*PDSDRIVERDESC;
typedef struct _DSDRIVERCAPS
{
DWORD dwFlags;
DWORD dwMinSecondarySampleRate;
DWORD dwMaxSecondarySampleRate;
DWORD dwPrimaryBuffers;
DWORD dwMaxHwMixingAllBuffers;
DWORD dwMaxHwMixingStaticBuffers;
DWORD dwMaxHwMixingStreamingBuffers;
DWORD dwFreeHwMixingAllBuffers;
DWORD dwFreeHwMixingStaticBuffers;
DWORD dwFreeHwMixingStreamingBuffers;
DWORD dwMaxHw3DAllBuffers;
DWORD dwMaxHw3DStaticBuffers;
DWORD dwMaxHw3DStreamingBuffers;
DWORD dwFreeHw3DAllBuffers;
DWORD dwFreeHw3DStaticBuffers;
DWORD dwFreeHw3DStreamingBuffers;
DWORD dwTotalHwMemBytes;
DWORD dwFreeHwMemBytes;
DWORD dwMaxContigFreeHwMemBytes;
} DSDRIVERCAPS,*PDSDRIVERCAPS;
typedef struct _DSVOLUMEPAN
{
DWORD dwTotalLeftAmpFactor;
DWORD dwTotalRightAmpFactor;
LONG lVolume;
DWORD dwVolAmpFactor;
LONG lPan;
DWORD dwPanLeftAmpFactor;
DWORD dwPanRightAmpFactor;
} DSVOLUMEPAN,*PDSVOLUMEPAN;
typedef union _DSPROPERTY
{
struct {
GUID Set;
ULONG Id;
ULONG Flags;
ULONG InstanceId;
} DUMMYSTRUCTNAME;
ULONGLONG Alignment;
} DSPROPERTY,*PDSPROPERTY;
typedef struct _DSCDRIVERCAPS
{
DWORD dwSize;
DWORD dwFlags;
DWORD dwFormats;
DWORD dwChannels;
} DSCDRIVERCAPS,*PDSCDRIVERCAPS;
/*****************************************************************************
* IDsDriver interface
*/
#define INTERFACE IDsDriver
DECLARE_INTERFACE_(IDsDriver,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDsDriver methods ***/
STDMETHOD(GetDriverDesc)(THIS_ PDSDRIVERDESC pDsDriverDesc) PURE;
STDMETHOD(Open)(THIS) PURE;
STDMETHOD(Close)(THIS) PURE;
STDMETHOD(GetCaps)(THIS_ PDSDRIVERCAPS pDsDrvCaps) PURE;
STDMETHOD(CreateSoundBuffer)(THIS_ LPWAVEFORMATEX pwfx,DWORD dwFlags,DWORD dwCardAddress,LPDWORD pdwcbBufferSize,LPBYTE *ppbBuffer,LPVOID *ppvObj) PURE;
STDMETHOD(DuplicateSoundBuffer)(THIS_ PIDSDRIVERBUFFER pIDsDriverBuffer,LPVOID *ppvObj) PURE;
};
#undef INTERFACE
#if !defined (__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IDsDriver_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IDsDriver_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IDsDriver_Release(p) (p)->lpVtbl->Release(p)
/*** IDsDriver methods ***/
#define IDsDriver_GetDriverDesc(p,a) (p)->lpVtbl->GetDriverDesc(p,a)
#define IDsDriver_Open(p) (p)->lpVtbl->Open(p)
#define IDsDriver_Close(p) (p)->lpVtbl->Close(p)
#define IDsDriver_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
#define IDsDriver_CreateSoundBuffer(p,a,b,c,d,e,f) (p)->lpVtbl->CreateSoundBuffer(p,a,b,c,d,e,f)
#define IDsDriver_DuplicateSoundBuffer(p,a,b) (p)->lpVtbl->DuplicateSoundBuffer(p,a,b)
#endif
/*****************************************************************************
* IDsDriverBuffer interface
*/
#define INTERFACE IDsDriverBuffer
DECLARE_INTERFACE_(IDsDriverBuffer,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDsDriverBuffer methods ***/
STDMETHOD(Lock)(THIS_ LPVOID *ppvAudio1,LPDWORD pdwLen1,LPVOID *pdwAudio2,LPDWORD pdwLen2,DWORD dwWritePosition,DWORD dwWriteLen,DWORD dwFlags) PURE;
STDMETHOD(Unlock)(THIS_ LPVOID pvAudio1,DWORD dwLen1,LPVOID pvAudio2,DWORD dwLen2) PURE;
STDMETHOD(SetFormat)(THIS_ LPWAVEFORMATEX pwfxToSet) PURE;
STDMETHOD(SetFrequency)(THIS_ DWORD dwFrequency) PURE;
STDMETHOD(SetVolumePan)(THIS_ PDSVOLUMEPAN pDsVolumePan) PURE;
STDMETHOD(SetPosition)(THIS_ DWORD dwNewPosition) PURE;
STDMETHOD(GetPosition)(THIS_ LPDWORD lpdwCurrentPlayCursor,LPDWORD lpdwCurrentWriteCursor) PURE;
STDMETHOD(Play)(THIS_ DWORD dwReserved1,DWORD dwReserved2,DWORD dwFlags) PURE;
STDMETHOD(Stop)(THIS) PURE;
};
#undef INTERFACE
#if !defined (__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IDsDriverBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IDsDriverBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IDsDriverBuffer_Release(p) (p)->lpVtbl->Release(p)
/*** IDsDriverBuffer methods ***/
#define IDsDriverBuffer_Lock(p,a,b,c,d,e,f,g) (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g)
#define IDsDriverBuffer_Unlock(p,a,b,c,d) (p)->lpVtbl->Unlock(p,a,b,c,d)
#define IDsDriverBuffer_SetFormat(p,a) (p)->lpVtbl->SetFormat(p,a)
#define IDsDriverBuffer_SetFrequency(p,a) (p)->lpVtbl->SetFrequency(p,a)
#define IDsDriverBuffer_SetVolumePan(p,a) (p)->lpVtbl->SetVolumePan(p,a)
#define IDsDriverBuffer_SetPosition(p,a) (p)->lpVtbl->SetPosition(p,a)
#define IDsDriverBuffer_GetPosition(p,a,b) (p)->lpVtbl->GetPosition(p,a,b)
#define IDsDriverBuffer_Play(p,a,b,c) (p)->lpVtbl->Play(p,a,b,c)
#define IDsDriverBuffer_Stop(p) (p)->lpVtbl->Stop(p)
#endif
/*****************************************************************************
* IDsDriverPropertySet interface
*/
#define INTERFACE IDsDriverPropertySet
DECLARE_INTERFACE_(IDsDriverPropertySet,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDsDriverPropertySet methods ***/
STDMETHOD(Get)(THIS_ PDSPROPERTY pDsProperty,LPVOID pPropertyParams,ULONG cbPropertyParams,LPVOID pPropertyData,ULONG cbPropertyData,PULONG pcbReturnedData) PURE;
STDMETHOD(Set)(THIS_ PDSPROPERTY pDsProperty,LPVOID pPropertyParams,ULONG cbPropertyParams,LPVOID pPropertyData,ULONG cbPropertyData) PURE;
STDMETHOD(QuerySupport)(THIS_ REFGUID PropertySetId,ULONG PropertyId,PULONG pSupport) PURE;
};
#undef INTERFACE
#if !defined (__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IDsDriverPropertySet_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IDsDriverPropertySet_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IDsDriverPropertySet_Release(p) (p)->lpVtbl->Release(p)
/*** IDsDriverPropertySet methods ***/
#define IDsDriverPropertySet_Get(p,a,b,c,d,e,f) (p)->lpVtbl->Get(p,a,b,c,d,e,f)
#define IDsDriverPropertySet_Set(p,a,b,c,d,e) (p)->lpVtbl->Set(p,a,b,c,d,e)
#define IDsDriverPropertySet_QuerySupport(p,a,b,c) (p)->lpVtbl->QuerySupport(p,a,b,c)
#endif
/* Defined property sets */
DEFINE_GUID(DSPROPSETID_DirectSound3DListener, 0x6D047B40, 0x7AF9, 0x11D0, 0x92, 0x94, 0x44, 0x45, 0x53, 0x54, 0x0, 0x0);
typedef enum
{
DSPROPERTY_DIRECTSOUND3DLISTENER_ALL,
DSPROPERTY_DIRECTSOUND3DLISTENER_POSITION,
DSPROPERTY_DIRECTSOUND3DLISTENER_VELOCITY,
DSPROPERTY_DIRECTSOUND3DLISTENER_ORIENTATION,
DSPROPERTY_DIRECTSOUND3DLISTENER_DISTANCEFACTOR,
DSPROPERTY_DIRECTSOUND3DLISTENER_ROLLOFFFACTOR,
DSPROPERTY_DIRECTSOUND3DLISTENER_DOPPLERFACTOR,
DSPROPERTY_DIRECTSOUND3DLISTENER_BATCH,
DSPROPERTY_DIRECTSOUND3DLISTENER_ALLOCATION
} DSPROPERTY_DIRECTSOUND3DLISTENER;
DEFINE_GUID(DSPROPSETID_DirectSound3DBuffer, 0x6D047B41, 0x7AF9, 0x11D0, 0x92, 0x94, 0x44, 0x45, 0x53, 0x54, 0x0, 0x0);
typedef enum
{
DSPROPERTY_DIRECTSOUND3DBUFFER_ALL,
DSPROPERTY_DIRECTSOUND3DBUFFER_POSITION,
DSPROPERTY_DIRECTSOUND3DBUFFER_VELOCITY,
DSPROPERTY_DIRECTSOUND3DBUFFER_CONEANGLES,
DSPROPERTY_DIRECTSOUND3DBUFFER_CONEORIENTATION,
DSPROPERTY_DIRECTSOUND3DBUFFER_CONEOUTSIDEVOLUME,
DSPROPERTY_DIRECTSOUND3DBUFFER_MINDISTANCE,
DSPROPERTY_DIRECTSOUND3DBUFFER_MAXDISTANCE,
DSPROPERTY_DIRECTSOUND3DBUFFER_MODE
} DSPROPERTY_DIRECTSOUND3DBUFFER;
DEFINE_GUID(DSPROPSETID_DirectSoundSpeakerConfig, 0x6D047B42, 0x7AF9, 0x11D0, 0x92, 0x94, 0x44, 0x45, 0x53, 0x54, 0x0, 0x0);
typedef enum
{
DSPROPERTY_DIRECTSOUNDSPEAKERCONFIG_SPEAKERCONFIG
} DSPROPERTY_DIRECTSOUNDSPEAKERCONFIG;
/*****************************************************************************
* IDsDriverNotify interface
*/
#define INTERFACE IDsDriverNotify
DECLARE_INTERFACE_(IDsDriverNotify,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDsDriverNotify methods ***/
STDMETHOD(SetNotificationPositions)(THIS_ DWORD dwPositionNotifies,LPCDSBPOSITIONNOTIFY pcPositionNotifies) PURE;
};
#undef INTERFACE
#if !defined (__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IDsDriverNotify_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IDsDriverNotify_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IDsDriverNotify_Release(p) (p)->lpVtbl->Release(p)
/*** IDsDriverNotify methods ***/
#define IDsDriverNotify_SetNotificationPositions(p,a,b) (p)->lpVtbl->SetNotificationPositions(p,a,b)
#endif
/*****************************************************************************
* IDsCaptureDriver interface
*/
#define INTERFACE IDsCaptureDriver
DECLARE_INTERFACE_(IDsCaptureDriver,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDsCaptureDriver methods ***/
STDMETHOD(GetDriverDesc)(THIS_ PDSDRIVERDESC pDsDriverDesc) PURE;
STDMETHOD(Open)(THIS) PURE;
STDMETHOD(Close)(THIS) PURE;
STDMETHOD(GetCaps)(THIS_ PDSCDRIVERCAPS pDsDrvCaps) PURE;
STDMETHOD(CreateCaptureBuffer)(THIS_ LPWAVEFORMATEX pwfx,DWORD dwFlags,DWORD dwCardAddress,LPDWORD pdwcbBufferSize,LPBYTE *ppbBuffer,LPVOID *ppvObj) PURE;
};
#undef INTERFACE
#if !defined (__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IDsCaptureDriver_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IDsCaptureDriver_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IDsCaptureDriver_Release(p) (p)->lpVtbl->Release(p)
/*** IDsCaptureDriver methods ***/
#define IDsCaptureDriver_GetDriverDesc(p,a) (p)->lpVtbl->GetDriverDesc(p,a)
#define IDsCaptureDriver_Open(p) (p)->lpVtbl->Open(p)
#define IDsCaptureDriver_Close(p) (p)->lpVtbl->Close(p)
#define IDsCaptureDriver_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
#define IDsCaptureDriver_CreateCaptureBuffer(p,a,b,c,d,e,f) (p)->lpVtbl->CreateCaptureBuffer(p,a,b,c,d,e,f)
#endif
/*****************************************************************************
* IDsCaptureDriverBuffer interface
*/
#define INTERFACE IDsCaptureDriverBuffer
DECLARE_INTERFACE_(IDsCaptureDriverBuffer,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDsCaptureDriverBuffer methods ***/
STDMETHOD(Lock)(THIS_ LPVOID *ppvAudio1,LPDWORD pdwLen1,LPVOID *ppvAudio2,LPDWORD pdwLen2,DWORD dwWritePosition,DWORD dwWriteLen,DWORD dwFlags) PURE;
STDMETHOD(Unlock)(THIS_ LPVOID pvAudio1,DWORD dwLen1,LPVOID pvAudio2,DWORD dwLen2) PURE;
STDMETHOD(SetFormat)(THIS_ LPWAVEFORMATEX pwfxToSet) PURE;
STDMETHOD(GetPosition)(THIS_ LPDWORD lpdwCurrentPlayCursor,LPDWORD lpdwCurrentWriteCursor) PURE;
STDMETHOD(GetStatus)(THIS_ LPDWORD lpdwStatus) PURE;
STDMETHOD(Start)(THIS_ DWORD dwFlags) PURE;
STDMETHOD(Stop)(THIS) PURE;
};
#undef INTERFACE
#if !defined (__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IDsCaptureDriverBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IDsCaptureDriverBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IDsCaptureDriverBuffer_Release(p) (p)->lpVtbl->Release(p)
/*** IDsCaptureDriverBuffer methods ***/
#define IDsCaptureDriverBuffer_Lock(p,a,b,c,d,e,f,g) (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g)
#define IDsCaptureDriverBuffer_Unlock(p,a,b,c,d) (p)->lpVtbl->Unlock(p,a,b,c,d)
#define IDsCaptureDriverBuffer_SetFormat(p,a) (p)->lpVtbl->SetFormat(p,a)
#define IDsCaptureDriverBuffer_GetPosition(p,a,b) (p)->lpVtbl->GetPosition(p,a,b)
#define IDsCaptureDriverBuffer_GetStatus(p,a) (p)->lpVtbl->GetStatus(p,a)
#define IDsCaptureDriverBuffer_Start(p,a) (p)->lpVtbl->Start(p,a)
#define IDsCaptureDriverBuffer_Stop(p) (p)->lpVtbl->Stop(p)
#endif
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* __WINE_DSDRIVER_H */
+3
View File
@@ -260,7 +260,10 @@ DEFINE_GUID(TID_DXFILEHeader, 0x3d82ab43, 0x62da, 0x11cf, 0xab, 0x
/* DirectX File errors */
#define _FACDD 0x876
#ifndef MAKE_DDHRESULT
#define MAKE_DDHRESULT( code ) MAKE_HRESULT( 1, _FACDD, code )
#endif
#define DXFILE_OK 0
+11
View File
@@ -296,6 +296,7 @@ typedef struct _KEY_FULL_INFORMATION
typedef struct _KEY_NAME_INFORMATION
{
ULONG NameLength;
WCHAR Name[1];
} KEY_NAME_INFORMATION, *PKEY_NAME_INFORMATION;
@@ -417,6 +418,16 @@ typedef struct _PLUGPLAY_EVENT_BLOCK
// Plug and Play Control Classes
//
//Class 0x09
typedef struct _PLUGPLAY_CONTROL_INTERFACE_DEVICE_LIST_DATA
{
UNICODE_STRING DeviceInstance;
LPGUID FilterGuid;
ULONG Flags;
PVOID Buffer;
ULONG BufferSize;
} PLUGPLAY_CONTROL_INTERFACE_DEVICE_LIST_DATA, *PPLUGPLAY_CONTROL_INTERFACE_DEVICE_LIST_DATA;
//Class 0x0A
typedef struct _PLUGPLAY_CONTROL_PROPERTY_DATA
{
+1
View File
@@ -476,6 +476,7 @@ Author:
#define EFLAGS_VIP 0x100000
#define EFLAG_SIGN 0x8000
#define EFLAG_ZERO 0x4000
#define EFLAGS_ID 0x200000
#define EFLAG_SELECT (EFLAG_SIGN + EFLAG_ZERO)
#endif
#define EFLAGS_USER_SANITIZE 0x3F4DD7
+18
View File
@@ -74,6 +74,7 @@ extern "C" {
//
// Flags in RTL_ACTIVATION_CONTEXT_STACK_FRAME (from Checked NTDLL)
//
#define RTL_ACTIVATION_CONTEXT_STACK_FRAME_FLAG_RELEASE_ON_DEACTIVATION 0x01
#define RTL_ACTIVATION_CONTEXT_STACK_FRAME_FLAG_NO_DEACTIVATE 0x02
#define RTL_ACTIVATION_CONTEXT_STACK_FRAME_FLAG_ON_FREE_LIST 0x04
#define RTL_ACTIVATION_CONTEXT_STACK_FRAME_FLAG_HEAP_ALLOCATED 0x08
@@ -884,6 +885,13 @@ typedef struct _RTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_EXTENDED
typedef RTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_EXTENDED RTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME;
typedef PRTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_EXTENDED PRTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME;
typedef struct _RTL_HEAP_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME
{
RTL_ACTIVATION_CONTEXT_STACK_FRAME Frame;
ULONG_PTR Cookie;
PVOID ActivationStackBackTrace[8];
} RTL_HEAP_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME, *PRTL_HEAP_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME;
#if (NTDDI_VERSION >= NTDDI_WS03)
typedef struct _ACTIVATION_CONTEXT_STACK
{
@@ -915,6 +923,16 @@ typedef struct _ACTIVATION_CONTEXT_DATA
ULONG Flags;
} ACTIVATION_CONTEXT_DATA, *PACTIVATION_CONTEXT_DATA;
typedef struct _ACTIVATION_CONTEXT_STACK_FRAMELIST
{
ULONG Magic;
ULONG FramesInUse;
LIST_ENTRY Links;
ULONG Flags;
ULONG NotFramesInUse;
RTL_HEAP_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME Frames[32];
} ACTIVATION_CONTEXT_STACK_FRAMELIST, *PACTIVATION_CONTEXT_STACK_FRAMELIST;
#endif /* NTOS_MODE_USER */
//
+1 -1
View File
@@ -129,7 +129,7 @@ typedef LONG KPRIORITY;
//
#if !defined(_NTSECAPI_H) && !defined(_SUBAUTH_H) && !defined(_NTSECAPI_)
#ifndef __BCRYPT_H__
#if !defined(__BCRYPT_H__) && !defined(__WINE_BCRYPT_H)
typedef _Return_type_success_(return >= 0) long NTSTATUS, *PNTSTATUS;
#endif
+134
View File
@@ -76,12 +76,146 @@ interface IRegistrar : IRegistrarBase
[in] LPCOLESTR szType);
}
[
object,
uuid(425b5af0-65f1-11d1-9611-0000f81e0d0d)
]
interface IDocHostUIHandlerDispatch : IDispatch
{
HRESULT ShowContextMenu([in] DWORD id,
[in] LONG x,
[in] LONG y,
[in] IUnknown *unkreserved,
[in] IDispatch *dispreserved,
[out, retval] HRESULT *retval);
HRESULT GetHostInfo([in, out] DWORD *flags,
[in, out] DWORD *doubleclick);
HRESULT ShowUI([in] DWORD id,
[in] IUnknown *activeobject,
[in] IUnknown *cmdtarget,
[in] IUnknown *frame,
[in] IUnknown *doc,
[out, retval] HRESULT *retval);
HRESULT HideUI();
HRESULT UpdateUI();
HRESULT EnableModeless([in] VARIANT_BOOL enable);
HRESULT OnDocWindowActivate([in] VARIANT_BOOL activate);
HRESULT OnFrameWindowActivate([in] VARIANT_BOOL activate);
HRESULT ResizeBorder([in] LONG left,
[in] LONG top,
[in] LONG right,
[in] LONG bottom,
[in] IUnknown *window,
[in] VARIANT_BOOL framewindow);
HRESULT TranslateAccelerator([in] HWND hwnd,
[in] UINT msg,
[in] WPARAM wparam,
[in] LPARAM lparam,
[in] BSTR guid_cmd_group,
[out, retval] HRESULT *retval);
HRESULT GetOptionKeyPath([out] BSTR *key,
[in] DWORD reserved);
HRESULT GetDropTarget([in] IUnknown *droptarget,
[out] IUnknown **ret_droptarget);
HRESULT GetExternal([out] IDispatch **disp);
HRESULT TranslateUrl([in] DWORD reserved,
[in] BSTR url,
[out] BSTR *translated_url);
HRESULT FilterDataObject([in] IUnknown *dataobject,
[out] IUnknown **dataobject_ret);
}
[
dual,
object,
oleautomation,
uuid(b6ea2051-048a-11d1-82b9-00c04fb9942e)
]
interface IAxWinAmbientDispatch : IDispatch
{
[propput]
HRESULT AllowWindowlessActivation([in] VARIANT_BOOL allow);
[propget]
HRESULT AllowWindowlessActivation([out, retval] VARIANT_BOOL *allowed);
[propput, id(-701)]
HRESULT BackColor([in] OLE_COLOR color);
[propget, id(-701)]
HRESULT BackColor([out, retval] OLE_COLOR *color);
[propput, id(-704)]
HRESULT ForeColor([in] OLE_COLOR color);
[propget, id(-704)]
HRESULT ForeColor([out, retval] OLE_COLOR *color);
[propput, id(-705)]
HRESULT LocaleID([in] LCID lcid);
[propget, id(-705)]
HRESULT LocaleID([out, retval] LCID *lcid);
[propput, id(-709)]
HRESULT UserMode([in] VARIANT_BOOL mode);
[propget, id(-709)]
HRESULT UserMode([out, retval] VARIANT_BOOL *mode);
[propput, id(-713)]
HRESULT DisplayAsDefault([in] VARIANT_BOOL display);
[propget, id(-713)]
HRESULT DisplayAsDefault([out, retval] VARIANT_BOOL *display);
[propput, id(-703)]
HRESULT Font([in] IFontDisp *font);
[propget, id(-703)]
HRESULT Font([out, retval] IFontDisp **font);
[propput, id(-706)]
HRESULT MessageReflect([in] VARIANT_BOOL reflect);
[propget, id(-706)]
HRESULT MessageReflect([out, retval] VARIANT_BOOL *reflect);
[propget, id(-711)]
HRESULT ShowGrabHandles([out, retval] VARIANT_BOOL *show);
[propget, id(-712)]
HRESULT ShowHatching([out, retval] VARIANT_BOOL *show);
[propput]
HRESULT DocHostFlags([in] DWORD flags);
[propget]
HRESULT DocHostFlags([out, retval] DWORD *flags);
[propput]
HRESULT DocHostDoubleClickFlags([in] DWORD flags);
[propget]
HRESULT DocHostDoubleClickFlags([out, retval] DWORD *flags);
[propput]
HRESULT AllowContextMenu([in] VARIANT_BOOL allow);
[propget]
HRESULT AllowContextMenu([out, retval] VARIANT_BOOL *allow);
[propput]
HRESULT AllowShowUI([in] VARIANT_BOOL allow);
[propget]
HRESULT AllowShowUI([out, retval] VARIANT_BOOL *allow);
[propput]
HRESULT OptionKeyPath([in] BSTR path);
[propget]
HRESULT OptionKeyPath([out, retval] BSTR *path);
}
[
dual,
object,
oleautomation,
uuid(b2d0778b-ac99-4c58-a5c8-e7724e5316b5)
]
interface IAxWinAmbientDispatchEx : IAxWinAmbientDispatch
{
[id(100)]
HRESULT SetAmbientDispatch([in] IDispatch *disp);
}
cpp_quote("DEFINE_GUID(CLSID_Registrar,0x44ec053a,0x400f,0x11d0,0x9d,0xcd,0x00,0xa0,0xc9,0x03,0x91,0xd3);")
cpp_quote("HRESULT WINAPI AtlAxCreateControl(LPCOLESTR,HWND,IStream*,IUnknown**);")
cpp_quote("HRESULT WINAPI AtlAxCreateControlEx(LPCOLESTR,HWND,IStream*,IUnknown**,IUnknown**,REFIID,IUnknown*);")
cpp_quote("HRESULT WINAPI AtlAxCreateControlLic(LPCOLESTR,HWND,IStream*,IUnknown**,BSTR);")
cpp_quote("HRESULT WINAPI AtlAxCreateControlLicEx(LPCOLESTR,HWND,IStream*,IUnknown**,IUnknown**,REFIID,IUnknown*,BSTR);")
cpp_quote("BOOL WINAPI AtlAxWinInit(void);")
cpp_quote("HRESULT WINAPI AtlAxGetControl(HWND,IUnknown**);")
cpp_quote("HRESULT WINAPI AtlAxGetHost(HWND,IUnknown**);")
cpp_quote("HWND WINAPI AtlAxCreateDialogW(HINSTANCE,LPCWSTR,HWND,DLGPROC,LPARAM);")
cpp_quote("HWND WINAPI AtlAxCreateDialogA(HINSTANCE,LPCSTR,HWND,DLGPROC,LPARAM);")
cpp_quote("#define AtlAxCreateDialog WINELIB_NAME_AW(AtlAxCreateDialog)")
cpp_quote("INT_PTR WINAPI AtlAxDialogBoxW(HINSTANCE,LPCWSTR,HWND,DLGPROC,LPARAM);")
cpp_quote("INT_PTR WINAPI AtlAxDialogBoxA(HINSTANCE,LPCSTR,HWND,DLGPROC,LPARAM);")
cpp_quote("#define AtlAxDialogBox WINELIB_NAME_AW(AtlAxDialogBox)")
+1
View File
@@ -37,6 +37,7 @@
#ifndef _NTDEF_
typedef _Return_type_success_(return >= 0) LONG NTSTATUS;
typedef NTSTATUS *PNTSTATUS;
#endif
typedef struct _BCRYPT_ALGORITHM_IDENTIFIER
+11
View File
@@ -247,6 +247,7 @@ extern "C" {
#define CDRF_NOTIFYITEMDRAW 0x20
#define CDRF_NOTIFYSUBITEMDRAW 0x20
#define CDRF_NOTIFYPOSTERASE 0x40
#define CDRF_NOTIFYITEMERASE 0x00000080 /* obsolete ??? */
#define CDDS_PREPAINT 0x1
#define CDDS_POSTPAINT 0x2
@@ -4716,8 +4717,18 @@ typedef struct {
_In_ PFNDSAENUMCALLBACK pfnCB,
_In_opt_ void *pData);
WINCOMMCTRLAPI
VOID
WINAPI
DSA_EnumCallback(
_In_ HDSA hdsa,
_In_ PFNDSAENUMCALLBACK enumProc,
_In_opt_ LPVOID lParam);
WINCOMMCTRLAPI PVOID WINAPI DSA_GetItemPtr(_In_ HDSA hdsa, int i);
WINCOMMCTRLAPI BOOL WINAPI DSA_DeleteAllItems(_In_ HDSA hdsa);
WINCOMMCTRLAPI
int
WINAPI
+32 -5
View File
@@ -66,9 +66,7 @@ cpp_quote("HRESULT WINAPI ImageList_CoCreateInstance(REFCLSID,const IUnknown *,
const UINT ILIF_ALPHA = 1;
[
object,
uuid(46EB5926-582E-4017-9FDF-E8998DAA0950),
helpstring("Image List"),
uuid(46eb5926-582e-4017-9fdf-e8998daa0950),
local
]
interface IImageList : IUnknown
@@ -200,15 +198,44 @@ interface IImageList : IUnknown
}
[
uuid(BCADA15B-B428-420c-8D28-023590924C9F)
uuid(192b9d83-50fc-457b-90a0-2b82a8b5dae1),
local
]
interface IImageList2 : IImageList
{
typedef struct tagIMAGELISTSTATS
{
DWORD cbSize;
INT cAlloc;
INT cUsed;
INT cStandby;
} IMAGELISTSTATS;
HRESULT Resize(INT x_size, INT y_size);
HRESULT GetOriginalSize([in] INT image, [in] DWORD flags, [out] INT *cx, [out] INT *cy);
HRESULT SetOriginalSize([in] INT image, [in] INT cx, [in] INT cy);
HRESULT SetCallback([in, unique] IUnknown *callback);
HRESULT GetCallback([in] REFIID riid, [out, iid_is(riid)] void** ppv);
HRESULT ForceImagePresent([in] INT image, DWORD flags);
HRESULT DiscardImages([in] INT first_image, [in] INT last_image, [in] DWORD flags);
HRESULT PreloadImages([in] IMAGELISTDRAWPARAMS *params);
HRESULT GetStatistics([in, out] IMAGELISTSTATS *stats);
HRESULT Initialize([in] INT cx, [in] INT cy, [in] UINT flags, [in] INT initial, [in] INT grow);
HRESULT Replace2([in] INT i, [in] HBITMAP image, [in, unique] HBITMAP mask, [in, unique] IUnknown *unk, [in] DWORD flags);
HRESULT ReplaceFromImageList([in] INT i, [in] IImageList *imagelist, [in] INT src, [in, unique] IUnknown *unk, [in] DWORD flags);
}
[
uuid(bcada15B-b428-420c-8d28-023590924c9f)
]
library CommonControlObjects
{
[
uuid(7C476BA2-02B1-48f4-8048-B24619DDC058)
uuid(7c476ba2-02b1-48f4-8048-b24619ddc058)
]
coclass ImageList
{
interface IImageList;
interface IImageList2;
}
}
+52 -40
View File
@@ -129,6 +129,7 @@ typedef struct IDirect3DVolumeTexture8 *LPDIRECT3DVOLUMETEXTURE8, *PDIRECT3DVOLU
/*****************************************************************************
* IDirect3D8 interface
*/
#undef INTERFACE
#define INTERFACE IDirect3D8
DECLARE_INTERFACE_(IDirect3D8,IUnknown)
{
@@ -205,12 +206,12 @@ DECLARE_INTERFACE_(IDirect3DVolume8,IUnknown)
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirect3DVolume8 methods ***/
STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void * pData, DWORD SizeOfData, DWORD Flags) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void * pData, DWORD * pSizeOfData) PURE;
STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
STDMETHOD(GetContainer)(THIS_ REFIID riid, void ** ppContainer) PURE;
STDMETHOD(GetDesc)(THIS_ D3DVOLUME_DESC * pDesc) PURE;
STDMETHOD(LockBox)(THIS_ D3DLOCKED_BOX * pLockedVolume,CONST D3DBOX * pBox, DWORD Flags) PURE;
STDMETHOD(LockBox)(THIS_ D3DLOCKED_BOX *locked_box, const D3DBOX *box, DWORD flags) PURE;
STDMETHOD(UnlockBox)(THIS) PURE;
};
#undef INTERFACE
@@ -256,7 +257,8 @@ DECLARE_INTERFACE_(IDirect3DSwapChain8,IUnknown)
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirect3DSwapChain8 methods ***/
STDMETHOD(Present)(THIS_ CONST RECT * pSourceRect, CONST RECT * pDestRect, HWND hDestWindowOverride,CONST RGNDATA * pDirtyRegion) PURE;
STDMETHOD(Present)(THIS_ const RECT *src_rect, const RECT *dst_rect, HWND dst_window_override,
const RGNDATA *dirty_region) PURE;
STDMETHOD(GetBackBuffer)(THIS_ UINT BackBuffer, D3DBACKBUFFER_TYPE Type, struct IDirect3DSurface8 ** ppBackBuffer) PURE;
};
#undef INTERFACE
@@ -267,7 +269,7 @@ DECLARE_INTERFACE_(IDirect3DSwapChain8,IUnknown)
#define IDirect3DSwapChain8_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IDirect3DSwapChain8_Release(p) (p)->lpVtbl->Release(p)
/*** IDirect3DSwapChain8 methods ***/
#define IDirect3DSwapChain8_Present(p,a,b,c) (p)->lpVtbl->Present(p,a,b,c)
#define IDirect3DSwapChain8_Present(p,a,b,c,d) (p)->lpVtbl->Present(p,a,b,c,d)
#define IDirect3DSwapChain8_GetBackBuffer(p,a,b,c) (p)->lpVtbl->GetBackBuffer(p,a,b,c)
#else
/*** IUnknown methods ***/
@@ -275,7 +277,7 @@ DECLARE_INTERFACE_(IDirect3DSwapChain8,IUnknown)
#define IDirect3DSwapChain8_AddRef(p) (p)->AddRef()
#define IDirect3DSwapChain8_Release(p) (p)->Release()
/*** IDirect3DSwapChain8 methods ***/
#define IDirect3DSwapChain8_Present(p,a,b,c) (p)->Present(a,b,c)
#define IDirect3DSwapChain8_Present(p,a,b,c,d) (p)->Present(a,b,c,d)
#define IDirect3DSwapChain8_GetBackBuffer(p,a,b,c) (p)->GetBackBuffer(a,b,c)
#endif
@@ -291,12 +293,12 @@ DECLARE_INTERFACE_(IDirect3DSurface8,IUnknown)
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirect3DSurface8 methods ***/
STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void * pData,DWORD SizeOfData,DWORD Flags) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void * pData,DWORD * pSizeOfData) PURE;
STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
STDMETHOD(GetContainer)(THIS_ REFIID riid, void ** ppContainer) PURE;
STDMETHOD(GetDesc)(THIS_ D3DSURFACE_DESC * pDesc) PURE;
STDMETHOD(LockRect)(THIS_ D3DLOCKED_RECT * pLockedRect, CONST RECT * pRect,DWORD Flags) PURE;
STDMETHOD(LockRect)(THIS_ D3DLOCKED_RECT *locked_rect, const RECT *rect, DWORD flags) PURE;
STDMETHOD(UnlockRect)(THIS) PURE;
};
#undef INTERFACE
@@ -343,7 +345,7 @@ DECLARE_INTERFACE_(IDirect3DResource8,IUnknown)
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirect3DResource8 methods ***/
STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void * pData, DWORD SizeOfData, DWORD Flags) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE;
STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE;
@@ -395,7 +397,7 @@ DECLARE_INTERFACE_(IDirect3DVertexBuffer8,IDirect3DResource8)
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirect3DResource8 methods ***/
STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void * pData, DWORD SizeOfData, DWORD Flags) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE;
STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE;
@@ -459,7 +461,7 @@ DECLARE_INTERFACE_(IDirect3DIndexBuffer8,IDirect3DResource8)
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirect3DResource8 methods ***/
STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void * pData, DWORD SizeOfData, DWORD Flags) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE;
STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE;
@@ -523,7 +525,7 @@ DECLARE_INTERFACE_(IDirect3DBaseTexture8,IDirect3DResource8)
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirect3DResource8 methods ***/
STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void * pData, DWORD SizeOfData, DWORD Flags) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE;
STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE;
@@ -587,7 +589,7 @@ DECLARE_INTERFACE_(IDirect3DCubeTexture8,IDirect3DBaseTexture8)
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirect3DResource8 methods ***/
STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void * pData, DWORD SizeOfData, DWORD Flags) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE;
STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE;
@@ -601,9 +603,10 @@ DECLARE_INTERFACE_(IDirect3DCubeTexture8,IDirect3DBaseTexture8)
/*** IDirect3DCubeTexture8 methods ***/
STDMETHOD(GetLevelDesc)(THIS_ UINT Level,D3DSURFACE_DESC * pDesc) PURE;
STDMETHOD(GetCubeMapSurface)(THIS_ D3DCUBEMAP_FACES FaceType,UINT Level,IDirect3DSurface8 ** ppCubeMapSurface) PURE;
STDMETHOD(LockRect)(THIS_ D3DCUBEMAP_FACES FaceType,UINT Level,D3DLOCKED_RECT * pLockedRect,CONST RECT * pRect,DWORD Flags) PURE;
STDMETHOD(LockRect)(THIS_ D3DCUBEMAP_FACES face, UINT level, D3DLOCKED_RECT *locked_rect,
const RECT *rect, DWORD flags) PURE;
STDMETHOD(UnlockRect)(THIS_ D3DCUBEMAP_FACES FaceType,UINT Level) PURE;
STDMETHOD(AddDirtyRect)(THIS_ D3DCUBEMAP_FACES FaceType,CONST RECT * pDirtyRect) PURE;
STDMETHOD(AddDirtyRect)(THIS_ D3DCUBEMAP_FACES face, const RECT *dirty_rect) PURE;
};
#undef INTERFACE
@@ -669,7 +672,7 @@ DECLARE_INTERFACE_(IDirect3DTexture8,IDirect3DBaseTexture8)
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirect3DResource8 methods ***/
STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void * pData, DWORD SizeOfData, DWORD Flags) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE;
STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE;
@@ -683,9 +686,9 @@ DECLARE_INTERFACE_(IDirect3DTexture8,IDirect3DBaseTexture8)
/*** IDirect3DTexture8 methods ***/
STDMETHOD(GetLevelDesc)(THIS_ UINT Level,D3DSURFACE_DESC * pDesc) PURE;
STDMETHOD(GetSurfaceLevel)(THIS_ UINT Level,IDirect3DSurface8 ** ppSurfaceLevel) PURE;
STDMETHOD(LockRect)(THIS_ UINT Level,D3DLOCKED_RECT * pLockedRect,CONST RECT * pRect,DWORD Flags) PURE;
STDMETHOD(LockRect)(THIS_ UINT level, D3DLOCKED_RECT *locked_rect, const RECT *rect, DWORD flags) PURE;
STDMETHOD(UnlockRect)(THIS_ UINT Level) PURE;
STDMETHOD(AddDirtyRect)(THIS_ CONST RECT * pDirtyRect) PURE;
STDMETHOD(AddDirtyRect)(THIS_ const RECT *dirty_rect) PURE;
};
#undef INTERFACE
@@ -751,7 +754,7 @@ DECLARE_INTERFACE_(IDirect3DVolumeTexture8,IDirect3DBaseTexture8)
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirect3DResource8 methods ***/
STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void * pData, DWORD SizeOfData, DWORD Flags) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE;
STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE;
@@ -765,9 +768,9 @@ DECLARE_INTERFACE_(IDirect3DVolumeTexture8,IDirect3DBaseTexture8)
/*** IDirect3DVolumeTexture8 methods ***/
STDMETHOD(GetLevelDesc)(THIS_ UINT Level,D3DVOLUME_DESC * pDesc) PURE;
STDMETHOD(GetVolumeLevel)(THIS_ UINT Level,IDirect3DVolume8 ** ppVolumeLevel) PURE;
STDMETHOD(LockBox)(THIS_ UINT Level,D3DLOCKED_BOX * pLockedVolume,CONST D3DBOX * pBox,DWORD Flags) PURE;
STDMETHOD(LockBox)(THIS_ UINT level, D3DLOCKED_BOX *locked_box, const D3DBOX *box, DWORD flags) PURE;
STDMETHOD(UnlockBox)(THIS_ UINT Level) PURE;
STDMETHOD(AddDirtyBox)(THIS_ CONST D3DBOX * pDirtyBox) PURE;
STDMETHOD(AddDirtyBox)(THIS_ const D3DBOX *dirty_box) PURE;
};
#undef INTERFACE
@@ -844,10 +847,11 @@ DECLARE_INTERFACE_(IDirect3DDevice8,IUnknown)
STDMETHOD_(BOOL,ShowCursor)(THIS_ BOOL bShow) PURE;
STDMETHOD(CreateAdditionalSwapChain)(THIS_ D3DPRESENT_PARAMETERS * pPresentationParameters, IDirect3DSwapChain8 ** pSwapChain) PURE;
STDMETHOD(Reset)(THIS_ D3DPRESENT_PARAMETERS * pPresentationParameters) PURE;
STDMETHOD(Present)(THIS_ CONST RECT * pSourceRect,CONST RECT * pDestRect,HWND hDestWindowOverride,CONST RGNDATA * pDirtyRegion) PURE;
STDMETHOD(Present)(THIS_ const RECT *src_rect, const RECT *dst_rect, HWND dst_window_override,
const RGNDATA *dirty_region) PURE;
STDMETHOD(GetBackBuffer)(THIS_ UINT BackBuffer,D3DBACKBUFFER_TYPE Type,IDirect3DSurface8 ** ppBackBuffer) PURE;
STDMETHOD(GetRasterStatus)(THIS_ D3DRASTER_STATUS * pRasterStatus) PURE;
STDMETHOD_(void,SetGammaRamp)(THIS_ DWORD Flags,CONST D3DGAMMARAMP * pRamp) PURE;
STDMETHOD_(void, SetGammaRamp)(THIS_ DWORD flags, const D3DGAMMARAMP *ramp) PURE;
STDMETHOD_(void,GetGammaRamp)(THIS_ D3DGAMMARAMP * pRamp) PURE;
STDMETHOD(CreateTexture)(THIS_ UINT Width,UINT Height,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DTexture8 ** ppTexture) PURE;
STDMETHOD(CreateVolumeTexture)(THIS_ UINT Width,UINT Height,UINT Depth,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DVolumeTexture8 ** ppVolumeTexture) PURE;
@@ -857,7 +861,8 @@ DECLARE_INTERFACE_(IDirect3DDevice8,IUnknown)
STDMETHOD(CreateRenderTarget)(THIS_ UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,BOOL Lockable,IDirect3DSurface8 ** ppSurface) PURE;
STDMETHOD(CreateDepthStencilSurface)(THIS_ UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,IDirect3DSurface8 ** ppSurface) PURE;
STDMETHOD(CreateImageSurface)(THIS_ UINT Width,UINT Height,D3DFORMAT Format,IDirect3DSurface8 ** ppSurface) PURE;
STDMETHOD(CopyRects)(THIS_ IDirect3DSurface8 * pSourceSurface,CONST RECT * pSourceRectsArray,UINT cRects,IDirect3DSurface8 * pDestinationSurface,CONST POINT * pDestPointsArray) PURE;
STDMETHOD(CopyRects)(THIS_ IDirect3DSurface8 *src_surface, const RECT *src_rects,
UINT rect_count, IDirect3DSurface8 *dst_surface, const POINT *dst_points) PURE;
STDMETHOD(UpdateTexture)(THIS_ IDirect3DBaseTexture8 * pSourceTexture,IDirect3DBaseTexture8 * pDestinationTexture) PURE;
STDMETHOD(GetFrontBuffer)(THIS_ IDirect3DSurface8 * pDestSurface) PURE;
STDMETHOD(SetRenderTarget)(THIS_ IDirect3DSurface8 * pRenderTarget,IDirect3DSurface8 * pNewZStencil) PURE;
@@ -865,19 +870,20 @@ DECLARE_INTERFACE_(IDirect3DDevice8,IUnknown)
STDMETHOD(GetDepthStencilSurface)(THIS_ IDirect3DSurface8 ** ppZStencilSurface) PURE;
STDMETHOD(BeginScene)(THIS) PURE;
STDMETHOD(EndScene)(THIS) PURE;
STDMETHOD(Clear)(THIS_ DWORD Count,CONST D3DRECT * pRects,DWORD Flags,D3DCOLOR Color,float Z,DWORD Stencil) PURE;
STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE State,CONST D3DMATRIX * pMatrix) PURE;
STDMETHOD(Clear)(THIS_ DWORD rect_count, const D3DRECT *rects, DWORD flags, D3DCOLOR color,
float z, DWORD stencil) PURE;
STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE state, const D3DMATRIX *matrix) PURE;
STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE State,D3DMATRIX * pMatrix) PURE;
STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE State, CONST D3DMATRIX * pMatrix) PURE;
STDMETHOD(SetViewport)(THIS_ CONST D3DVIEWPORT8 * pViewport) PURE;
STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE state, const D3DMATRIX *matrix) PURE;
STDMETHOD(SetViewport)(THIS_ const D3DVIEWPORT8 *viewport) PURE;
STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT8 * pViewport) PURE;
STDMETHOD(SetMaterial)(THIS_ CONST D3DMATERIAL8 * pMaterial) PURE;
STDMETHOD(SetMaterial)(THIS_ const D3DMATERIAL8 *material) PURE;
STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL8 *pMaterial) PURE;
STDMETHOD(SetLight)(THIS_ DWORD Index,CONST D3DLIGHT8 * pLight) PURE;
STDMETHOD(SetLight)(THIS_ DWORD index, const D3DLIGHT8 *light) PURE;
STDMETHOD(GetLight)(THIS_ DWORD Index,D3DLIGHT8 * pLight) PURE;
STDMETHOD(LightEnable)(THIS_ DWORD Index,BOOL Enable) PURE;
STDMETHOD(GetLightEnable)(THIS_ DWORD Index,BOOL * pEnable) PURE;
STDMETHOD(SetClipPlane)(THIS_ DWORD Index,CONST float * pPlane) PURE;
STDMETHOD(SetClipPlane)(THIS_ DWORD index, const float *plane) PURE;
STDMETHOD(GetClipPlane)(THIS_ DWORD Index,float * pPlane) PURE;
STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE State,DWORD Value) PURE;
STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE State,DWORD * pValue) PURE;
@@ -887,7 +893,7 @@ DECLARE_INTERFACE_(IDirect3DDevice8,IUnknown)
STDMETHOD(CaptureStateBlock)(THIS_ DWORD Token) PURE;
STDMETHOD(DeleteStateBlock)(THIS_ DWORD Token) PURE;
STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE Type,DWORD * pToken) PURE;
STDMETHOD(SetClipStatus)(THIS_ CONST D3DCLIPSTATUS8 * pClipStatus) PURE;
STDMETHOD(SetClipStatus)(THIS_ const D3DCLIPSTATUS8 *clip_status) PURE;
STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS8 * pClipStatus) PURE;
STDMETHOD(GetTexture)(THIS_ DWORD Stage,IDirect3DBaseTexture8 ** ppTexture) PURE;
STDMETHOD(SetTexture)(THIS_ DWORD Stage,IDirect3DBaseTexture8 * pTexture) PURE;
@@ -895,20 +901,24 @@ DECLARE_INTERFACE_(IDirect3DDevice8,IUnknown)
STDMETHOD(SetTextureStageState)(THIS_ DWORD Stage,D3DTEXTURESTAGESTATETYPE Type,DWORD Value) PURE;
STDMETHOD(ValidateDevice)(THIS_ DWORD * pNumPasses) PURE;
STDMETHOD(GetInfo)(THIS_ DWORD DevInfoID,void * pDevInfoStruct,DWORD DevInfoStructSize) PURE;
STDMETHOD(SetPaletteEntries)(THIS_ UINT PaletteNumber,CONST PALETTEENTRY * pEntries) PURE;
STDMETHOD(SetPaletteEntries)(THIS_ UINT palette_idx, const PALETTEENTRY *entries) PURE;
STDMETHOD(GetPaletteEntries)(THIS_ UINT PaletteNumber,PALETTEENTRY * pEntries) PURE;
STDMETHOD(SetCurrentTexturePalette)(THIS_ UINT PaletteNumber) PURE;
STDMETHOD(GetCurrentTexturePalette)(THIS_ UINT * PaletteNumber) PURE;
STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE PrimitiveType,UINT StartVertex,UINT PrimitiveCount) PURE;
STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE PrimitiveType,UINT minIndex,UINT NumVertices,UINT startIndex,UINT primCount) PURE;
STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType,UINT PrimitiveCount,CONST void * pVertexStreamZeroData,UINT VertexStreamZeroStride) PURE;
STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType,UINT MinVertexIndex,UINT NumVertexIndices,UINT PrimitiveCount,CONST void * pIndexData,D3DFORMAT IndexDataFormat,CONST void * pVertexStreamZeroData,UINT VertexStreamZeroStride) PURE;
STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE primitive_type, UINT primitive_count,
const void *data, UINT stride) PURE;
STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE primitive_type, UINT min_vertex_idx,
UINT vertex_count, UINT primitive_count, const void *index_data, D3DFORMAT index_format,
const void *data, UINT stride) PURE;
STDMETHOD(ProcessVertices)(THIS_ UINT SrcStartIndex,UINT DestIndex,UINT VertexCount,IDirect3DVertexBuffer8 * pDestBuffer,DWORD Flags) PURE;
STDMETHOD(CreateVertexShader)(THIS_ CONST DWORD * pDeclaration,CONST DWORD * pFunction,DWORD * pHandle,DWORD Usage) PURE;
STDMETHOD(CreateVertexShader)(THIS_ const DWORD *declaration, const DWORD *byte_code,
DWORD *shader, DWORD usage) PURE;
STDMETHOD(SetVertexShader)(THIS_ DWORD Handle) PURE;
STDMETHOD(GetVertexShader)(THIS_ DWORD * pHandle) PURE;
STDMETHOD(DeleteVertexShader)(THIS_ DWORD Handle) PURE;
STDMETHOD(SetVertexShaderConstant)(THIS_ DWORD Register,CONST void * pConstantData,DWORD ConstantCount) PURE;
STDMETHOD(SetVertexShaderConstant)(THIS_ DWORD reg_idx, const void *data, DWORD count) PURE;
STDMETHOD(GetVertexShaderConstant)(THIS_ DWORD Register,void * pConstantData,DWORD ConstantCount) PURE;
STDMETHOD(GetVertexShaderDeclaration)(THIS_ DWORD Handle,void * pData,DWORD * pSizeOfData) PURE;
STDMETHOD(GetVertexShaderFunction)(THIS_ DWORD Handle,void * pData,DWORD * pSizeOfData) PURE;
@@ -916,15 +926,17 @@ DECLARE_INTERFACE_(IDirect3DDevice8,IUnknown)
STDMETHOD(GetStreamSource)(THIS_ UINT StreamNumber,IDirect3DVertexBuffer8 ** ppStreamData,UINT * pStride) PURE;
STDMETHOD(SetIndices)(THIS_ IDirect3DIndexBuffer8 * pIndexData,UINT BaseVertexIndex) PURE;
STDMETHOD(GetIndices)(THIS_ IDirect3DIndexBuffer8 ** ppIndexData,UINT * pBaseVertexIndex) PURE;
STDMETHOD(CreatePixelShader)(THIS_ CONST DWORD * pFunction,DWORD * pHandle) PURE;
STDMETHOD(CreatePixelShader)(THIS_ const DWORD *byte_code, DWORD *shader) PURE;
STDMETHOD(SetPixelShader)(THIS_ DWORD Handle) PURE;
STDMETHOD(GetPixelShader)(THIS_ DWORD * pHandle) PURE;
STDMETHOD(DeletePixelShader)(THIS_ DWORD Handle) PURE;
STDMETHOD(SetPixelShaderConstant)(THIS_ DWORD Register,CONST void * pConstantData,DWORD ConstantCount) PURE;
STDMETHOD(SetPixelShaderConstant)(THIS_ DWORD reg_idx, const void *data, DWORD count) PURE;
STDMETHOD(GetPixelShaderConstant)(THIS_ DWORD Register,void * pConstantData,DWORD ConstantCount) PURE;
STDMETHOD(GetPixelShaderFunction)(THIS_ DWORD Handle,void * pData,DWORD * pSizeOfData) PURE;
STDMETHOD(DrawRectPatch)(THIS_ UINT Handle,CONST float * pNumSegs,CONST D3DRECTPATCH_INFO * pRectPatchInfo) PURE;
STDMETHOD(DrawTriPatch)(THIS_ UINT Handle,CONST float * pNumSegs,CONST D3DTRIPATCH_INFO * pTriPatchInfo) PURE;
STDMETHOD(DrawRectPatch)(THIS_ UINT handle, const float *segment_count,
const D3DRECTPATCH_INFO *patch_info) PURE;
STDMETHOD(DrawTriPatch)(THIS_ UINT handle, const float *segment_count,
const D3DTRIPATCH_INFO *patch_info) PURE;
STDMETHOD(DeletePatch)(THIS_ UINT Handle) PURE;
};
#undef INTERFACE
+8 -3
View File
@@ -154,7 +154,7 @@
((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 ))
#endif
/****************************
/****************************
* Vertex Shaders Declaration
*/
@@ -170,7 +170,7 @@ typedef enum _D3DVSD_TOKENTYPE {
D3DVSD_FORCE_DWORD = 0x7FFFFFFF
} D3DVSD_TOKENTYPE;
/** input registers for vertes shaders functions */
/** input registers for vertex shaders functions */
/*
#define D3DVSDE_POSITION 0
#define D3DVSDE_BLENDWEIGHT 1
@@ -683,7 +683,7 @@ typedef enum _D3DMULTISAMPLE_TYPE {
D3DMULTISAMPLE_15_SAMPLES = 15,
D3DMULTISAMPLE_16_SAMPLES = 16,
D3DMULTISAMPLE_FORCE_DWORD = 0xffffffff
D3DMULTISAMPLE_FORCE_DWORD = 0x7fffffff
} D3DMULTISAMPLE_TYPE;
typedef enum _D3DORDERTYPE {
@@ -1053,11 +1053,14 @@ typedef struct _D3DINDEXBUFFER_DESC {
UINT Size;
} D3DINDEXBUFFER_DESC;
#ifndef D3DVECTOR_DEFINED
typedef struct _D3DVECTOR {
float x;
float y;
float z;
} D3DVECTOR;
#define D3DVECTOR_DEFINED
#endif
typedef struct _D3DLIGHT8 {
D3DLIGHTTYPE Type;
@@ -1131,6 +1134,8 @@ typedef struct _D3DPRESENT_PARAMETERS_ {
} D3DPRESENT_PARAMETERS;
#define D3DPRESENTFLAG_LOCKABLE_BACKBUFFER 0x00000001
typedef struct _D3DRANGE {
UINT Offset;
UINT Size;
+229 -113
View File
@@ -17,8 +17,8 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef __WINE_D3D9_H
#define __WINE_D3D9_H
#ifndef _D3D9_H_
#define _D3D9_H_
#ifndef DIRECT3D_VERSION
#define DIRECT3D_VERSION 0x0900
@@ -47,6 +47,12 @@
#define D3DCREATE_MIXED_VERTEXPROCESSING 0x00000080L
#define D3DCREATE_DISABLE_DRIVER_MANAGEMENT 0x00000100L
#define D3DCREATE_ADAPTERGROUP_DEVICE 0x00000200L
#define D3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX 0x00000400L
#define D3DCREATE_NOWINDOWCHANGES 0x00000800L
#define D3DCREATE_DISABLE_PSGP_THREADING 0x00002000L
#define D3DCREATE_ENABLE_PRESENTSTATS 0x00004000L
#define D3DCREATE_DISABLE_PRINTSCREEN 0x00008000L
#define D3DCREATE_SCREENSAVER 0x10000000L
/*****************************************************************************
* Flags for SetPrivateData
@@ -57,16 +63,8 @@
/*****************************************************************************
* #defines and error codes
*/
#ifdef D3D_DEBUG_INFO
#define D3D_SDK_VERSION (32 | 0x80000000L)
#define D3D9b_SDK_VERSION (31 | 0x80000000L)
#else
#define D3D_SDK_VERSION 32
#define D3D9b_SDK_VERSION 31
#endif
#define D3DADAPTER_DEFAULT 0
#define D3DENUM_WHQL_LEVEL 0x00000002L
#define D3DENUM_NO_WHQL_LEVEL 0x00000002L
#define D3DPRESENT_BACK_BUFFERS_MAX 3L
#define D3DSGR_NO_CALIBRATION 0x00000000L
@@ -104,6 +102,18 @@
#define D3DERR_WASSTILLDRAWING MAKE_D3DHRESULT(540)
#define D3DOK_NOAUTOGEN MAKE_D3DSTATUS(2159)
#define D3DERR_DEVICEREMOVED MAKE_D3DHRESULT(2160)
#define D3DERR_DEVICEHUNG MAKE_D3DHRESULT(2164)
#define S_NOT_RESIDENT MAKE_D3DSTATUS(2165)
#define S_RESIDENT_IN_SHARED_MEMORY MAKE_D3DSTATUS(2166)
#define S_PRESENT_MODE_CHANGED MAKE_D3DSTATUS(2167)
#define S_PRESENT_OCCLUDED MAKE_D3DSTATUS(2168)
#define D3DERR_UNSUPPORTEDOVERLAY MAKE_D3DHRESULT(2171)
#define D3DERR_UNSUPPORTEDOVERLAYFORMAT MAKE_D3DHRESULT(2172)
#define D3DERR_CANNOTPROTECTCONTENT MAKE_D3DHRESULT(2173)
#define D3DERR_UNSUPPORTEDCRYPTO MAKE_D3DHRESULT(2174)
#define D3DERR_PRESENT_STATISTICS_DISJOINT MAKE_D3DHRESULT(2180)
/*****************************************************************************
* Predeclare the interfaces
@@ -132,7 +142,7 @@ typedef struct IDirect3DVolume9 *LPDIRECT3DVOLUME9, *PDIRECT3DVOLUME9;
DEFINE_GUID(IID_IDirect3DSwapChain9, 0x794950f2, 0xadfc, 0x458a, 0x90, 0x5e, 0x10, 0xa1, 0xb, 0xb, 0x50, 0x3b);
typedef struct IDirect3DSwapChain9 *LPDIRECT3DSWAPCHAIN9, *PDIRECT3DSWAPCHAIN9;
DEFINE_GUID(IID_IDirect3DSwapChain9Ex, 0x91886caf, 0x1c3d, 0x4d2e, 0xa0, 0xab, 0x3e, 0x4c, 0x7d, 0x8d, 0x33, 0x3);
DEFINE_GUID(IID_IDirect3DSwapChain9Ex, 0x91886caf, 0x1c3d, 0x4d2e, 0xa0, 0xab, 0x3e, 0x4c, 0x7d, 0x8d, 0x33, 0x3);
typedef struct IDirect3DSwapChain9Ex *LPDIRECT3DSWAPCHAIN9EX, *PDIRECT3DSWAPCHAIN9EX;
DEFINE_GUID(IID_IDirect3DSurface9, 0xcfbaf3a, 0x9ff6, 0x429a, 0x99, 0xb3, 0xa2, 0x79, 0x6a, 0xf8, 0xb8, 0x9b);
@@ -171,6 +181,7 @@ typedef struct IDirect3DQuery9 *LPDIRECT3DQUERY9, *PDIRECT3DQUERY9;
/*****************************************************************************
* IDirect3D9 interface
*/
#undef INTERFACE
#define INTERFACE IDirect3D9
DECLARE_INTERFACE_(IDirect3D9,IUnknown)
{
@@ -193,14 +204,13 @@ DECLARE_INTERFACE_(IDirect3D9,IUnknown)
STDMETHOD(GetDeviceCaps)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DCAPS9* pCaps) PURE;
STDMETHOD_(HMONITOR, GetAdapterMonitor)(THIS_ UINT Adapter) PURE;
STDMETHOD(CreateDevice)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, HWND hFocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS* pPresentationParameters, struct IDirect3DDevice9** ppReturnedDeviceInterface) PURE;
#ifdef D3D_DEBUG_INFO
LPCWSTR Version;
#endif
};
#undef INTERFACE
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDirect3D9, 0x81BDCBCA, 0x64D4, 0x426D, 0xAE, 0x8D, 0xAD, 0x1, 0x47, 0xF4, 0x27, 0x5C);
#endif
#if !defined(__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IDirect3D9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
@@ -254,7 +264,15 @@ DECLARE_INTERFACE_(IDirect3D9Ex,IDirect3D9)
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirect3D9 methods ***/
/* Note: Microsoft's d3d9.h does not declare IDirect3D9Ex::RegisterSoftwareDevice . This would mean that
* the offsets of the other methods in the Vtable change too. This is wrong. In Microsoft's
* d3d9.dll, the offsets for the other functions are still compatible with IDirect3D9.
* This is probably because even in MS header IDirect3D9Ex inherits from IDirect3D9, which makes the
* C++ interface compatible, and nobody uses the C interface in Windows world.
*/
STDMETHOD(RegisterSoftwareDevice)(THIS_ void* pInitializeFunction) PURE;
STDMETHOD_(UINT, GetAdapterCount)(THIS) PURE;
STDMETHOD(GetAdapterIdentifier)(THIS_ UINT Adapter, DWORD Flags, D3DADAPTER_IDENTIFIER9* pIdentifier) PURE;
STDMETHOD_(UINT, GetAdapterModeCount)(THIS_ UINT Adapter, D3DFORMAT Format) PURE;
@@ -269,14 +287,19 @@ DECLARE_INTERFACE_(IDirect3D9Ex,IDirect3D9)
STDMETHOD_(HMONITOR, GetAdapterMonitor)(THIS_ UINT Adapter) PURE;
STDMETHOD(CreateDevice)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, HWND hFocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS* pPresentationParameters, struct IDirect3DDevice9** ppReturnedDeviceInterface) PURE;
/*** IDirect3D9Ex methods ***/
STDMETHOD_(UINT, GetAdapterModeCountEx)(THIS_ UINT Adapter, CONST D3DDISPLAYMODEFILTER *pFilter) PURE;
STDMETHOD(EnumAdapterModesEx)(THIS_ UINT Adapter, CONST D3DDISPLAYMODEFILTER *pFilter, UINT Mode, D3DDISPLAYMODEEX* pMode) PURE;
STDMETHOD_(UINT, GetAdapterModeCountEx)(THIS_ UINT adapter_idx, const D3DDISPLAYMODEFILTER *filter) PURE;
STDMETHOD(EnumAdapterModesEx)(THIS_ UINT adapter_idx, const D3DDISPLAYMODEFILTER *filter,
UINT mode_idx, D3DDISPLAYMODEEX *mode) PURE;
STDMETHOD(GetAdapterDisplayModeEx)(THIS_ UINT Adapter, D3DDISPLAYMODEEX *pMode, D3DDISPLAYROTATION *pRotation);
STDMETHOD(CreateDeviceEx)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, HWND hFocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS* pPresentationParameters, D3DDISPLAYMODEEX* pFullscreenDisplayMode, struct IDirect3DDevice9Ex **ppReturnedDeviceInterface) PURE;
STDMETHOD(GetAdapterLUID)(THIS_ UINT Adatper, LUID *pLUID) PURE;
};
#undef INTERFACE
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDirect3D9Ex, 0x02177241, 0x69FC, 0x400C, 0x8F, 0xF1, 0x93, 0xA4, 0x4D, 0xF6, 0x86, 0x1D);
#endif
#if !defined(__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IDirect3D9Ex_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
@@ -337,16 +360,20 @@ DECLARE_INTERFACE_(IDirect3DVolume9,IUnknown)
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirect3DVolume9 methods ***/
STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
STDMETHOD(GetContainer)(THIS_ REFIID riid, void** ppContainer) PURE;
STDMETHOD(GetDesc)(THIS_ D3DVOLUME_DESC* pDesc) PURE;
STDMETHOD(LockBox)(THIS_ D3DLOCKED_BOX* pLockedVolume, CONST D3DBOX* pBox, DWORD Flags) PURE;
STDMETHOD(LockBox)(THIS_ D3DLOCKED_BOX *locked_box, const D3DBOX *box, DWORD flags) PURE;
STDMETHOD(UnlockBox)(THIS) PURE;
};
#undef INTERFACE
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDirect3DVolume9, 0x24f416e6, 0x1f67, 0x4aa7, 0xb8, 0x8e, 0xd3, 0x3f, 0x6f, 0x31, 0x28, 0xa1);
#endif
#if !defined(__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IDirect3DVolume9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
@@ -384,20 +411,25 @@ DECLARE_INTERFACE_(IDirect3DVolume9,IUnknown)
DECLARE_INTERFACE_(IDirect3DSwapChain9,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirect3DSwapChain9 methods ***/
STDMETHOD(Present)(THIS_ CONST RECT* pSourceRect, CONST RECT* pDestRect, HWND hDestWindowOverride, CONST RGNDATA* pDirtyRegion, DWORD dwFlags) PURE;
STDMETHOD(GetFrontBufferData)(THIS_ struct IDirect3DSurface9* pDestSurface) PURE;
STDMETHOD(GetBackBuffer)(THIS_ UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, struct IDirect3DSurface9** ppBackBuffer) PURE;
STDMETHOD(GetRasterStatus)(THIS_ D3DRASTER_STATUS* pRasterStatus) PURE;
STDMETHOD(GetDisplayMode)(THIS_ D3DDISPLAYMODE* pMode) PURE;
STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
STDMETHOD(GetPresentParameters)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters) PURE;
STDMETHOD(Present)(THIS_ const RECT *src_rect, const RECT *dst_rect, HWND dst_window_override,
const RGNDATA *dirty_region, DWORD flags) PURE;
STDMETHOD(GetFrontBufferData)(THIS_ struct IDirect3DSurface9 *pDestSurface) PURE;
STDMETHOD(GetBackBuffer)(THIS_ UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, struct IDirect3DSurface9 **ppBackBuffer) PURE;
STDMETHOD(GetRasterStatus)(THIS_ D3DRASTER_STATUS *pRasterStatus) PURE;
STDMETHOD(GetDisplayMode)(THIS_ D3DDISPLAYMODE *pMode) PURE;
STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9 **ppDevice) PURE;
STDMETHOD(GetPresentParameters)(THIS_ D3DPRESENT_PARAMETERS *pPresentationParameters) PURE;
};
#undef INTERFACE
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDirect3DSwapChain9, 0x794950f2, 0xadfc, 0x458a, 0x90, 0x5e, 0x10, 0xa1, 0xb, 0xb, 0x50, 0x3b);
#endif
#if !defined(__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IDirect3DSwapChain9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
@@ -452,6 +484,10 @@ DECLARE_INTERFACE_(IDirect3DSwapChain9Ex,IDirect3DSwapChain9)
};
#undef INTERFACE
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDirect3DSwapChain9Ex, 0x91886caf, 0x1c3d, 0x4d2e, 0xa0, 0xab, 0x3e, 0x4c, 0x7d, 0x8d, 0x33, 0x3);
#endif
#if !defined(__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IDirect3DSwapChain9Ex_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
@@ -500,7 +536,7 @@ DECLARE_INTERFACE_(IDirect3DResource9,IUnknown)
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirect3DResource9 methods ***/
STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
@@ -510,6 +546,10 @@ DECLARE_INTERFACE_(IDirect3DResource9,IUnknown)
};
#undef INTERFACE
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDirect3DResource9, 0x5eec05d, 0x8f7d, 0x4362, 0xb9, 0x99, 0xd1, 0xba, 0xf3, 0x57, 0xc7, 0x4);
#endif
#if !defined(__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IDirect3DResource9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
@@ -552,7 +592,7 @@ DECLARE_INTERFACE_(IDirect3DSurface9,IDirect3DResource9)
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirect3DResource9 methods ***/
STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
@@ -562,13 +602,17 @@ DECLARE_INTERFACE_(IDirect3DSurface9,IDirect3DResource9)
/*** IDirect3DSurface9 methods ***/
STDMETHOD(GetContainer)(THIS_ REFIID riid, void** ppContainer) PURE;
STDMETHOD(GetDesc)(THIS_ D3DSURFACE_DESC* pDesc) PURE;
STDMETHOD(LockRect)(THIS_ D3DLOCKED_RECT* pLockedRect, CONST RECT* pRect, DWORD Flags) PURE;
STDMETHOD(LockRect)(THIS_ D3DLOCKED_RECT *locked_rect, const RECT *rect, DWORD flags) PURE;
STDMETHOD(UnlockRect)(THIS) PURE;
STDMETHOD(GetDC)(THIS_ HDC* phdc) PURE;
STDMETHOD(ReleaseDC)(THIS_ HDC hdc) PURE;
};
#undef INTERFACE
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDirect3DSurface9, 0xcfbaf3a, 0x9ff6, 0x429a, 0x99, 0xb3, 0xa2, 0x79, 0x6a, 0xf8, 0xb8, 0x9b);
#endif
#if !defined(__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IDirect3DSurface9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
@@ -625,7 +669,7 @@ DECLARE_INTERFACE_(IDirect3DVertexBuffer9,IDirect3DResource9)
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirect3DResource9 methods ***/
STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
@@ -639,6 +683,10 @@ DECLARE_INTERFACE_(IDirect3DVertexBuffer9,IDirect3DResource9)
};
#undef INTERFACE
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDirect3DVertexBuffer9, 0xb64bb1b5, 0xfd70, 0x4df6, 0xbf, 0x91, 0x19, 0xd0, 0xa1, 0x24, 0x55, 0xe3);
#endif
#if !defined(__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IDirect3DVertexBuffer9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
@@ -689,7 +737,7 @@ DECLARE_INTERFACE_(IDirect3DIndexBuffer9,IDirect3DResource9)
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirect3DResource9 methods ***/
STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
@@ -703,6 +751,10 @@ DECLARE_INTERFACE_(IDirect3DIndexBuffer9,IDirect3DResource9)
};
#undef INTERFACE
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDirect3DIndexBuffer9, 0x7c9dd65e, 0xd3f7, 0x4529, 0xac, 0xee, 0x78, 0x58, 0x30, 0xac, 0xde, 0x35);
#endif
#if !defined(__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IDirect3DIndexBuffer9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
@@ -753,7 +805,7 @@ DECLARE_INTERFACE_(IDirect3DBaseTexture9,IDirect3DResource9)
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirect3DResource9 methods ***/
STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
@@ -770,6 +822,10 @@ DECLARE_INTERFACE_(IDirect3DBaseTexture9,IDirect3DResource9)
};
#undef INTERFACE
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDirect3DBaseTexture9, 0x580ca87e, 0x1d3c, 0x4d54, 0x99, 0x1d, 0xb7, 0xd3, 0xe3, 0xc2, 0x98, 0xce);
#endif
#if !defined(__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IDirect3DBaseTexture9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
@@ -826,7 +882,7 @@ DECLARE_INTERFACE_(IDirect3DCubeTexture9,IDirect3DBaseTexture9)
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirect3DResource9 methods ***/
STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
@@ -843,12 +899,17 @@ DECLARE_INTERFACE_(IDirect3DCubeTexture9,IDirect3DBaseTexture9)
/*** IDirect3DCubeTexture9 methods ***/
STDMETHOD(GetLevelDesc)(THIS_ UINT Level,D3DSURFACE_DESC* pDesc) PURE;
STDMETHOD(GetCubeMapSurface)(THIS_ D3DCUBEMAP_FACES FaceType, UINT Level, IDirect3DSurface9** ppCubeMapSurface) PURE;
STDMETHOD(LockRect)(THIS_ D3DCUBEMAP_FACES FaceType, UINT Level, D3DLOCKED_RECT* pLockedRect, CONST RECT* pRect, DWORD Flags) PURE;
STDMETHOD(LockRect)(THIS_ D3DCUBEMAP_FACES face, UINT level,
D3DLOCKED_RECT *locked_rect, const RECT *rect, DWORD flags) PURE;
STDMETHOD(UnlockRect)(THIS_ D3DCUBEMAP_FACES FaceType, UINT Level) PURE;
STDMETHOD(AddDirtyRect)(THIS_ D3DCUBEMAP_FACES FaceType, CONST RECT* pDirtyRect) PURE;
STDMETHOD(AddDirtyRect)(THIS_ D3DCUBEMAP_FACES face, const RECT *dirty_rect) PURE;
};
#undef INTERFACE
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDirect3DCubeTexture9, 0xfff32f81, 0xd953, 0x473a, 0x92, 0x23, 0x93, 0xd6, 0x52, 0xab, 0xa9, 0x3f);
#endif
#if !defined(__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IDirect3DCubeTexture9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
@@ -917,7 +978,7 @@ DECLARE_INTERFACE_(IDirect3DTexture9,IDirect3DBaseTexture9)
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirect3DResource9 methods ***/
STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
@@ -934,12 +995,16 @@ DECLARE_INTERFACE_(IDirect3DTexture9,IDirect3DBaseTexture9)
/*** IDirect3DTexture9 methods ***/
STDMETHOD(GetLevelDesc)(THIS_ UINT Level, D3DSURFACE_DESC* pDesc) PURE;
STDMETHOD(GetSurfaceLevel)(THIS_ UINT Level, IDirect3DSurface9** ppSurfaceLevel) PURE;
STDMETHOD(LockRect)(THIS_ UINT Level, D3DLOCKED_RECT* pLockedRect, CONST RECT* pRect, DWORD Flags) PURE;
STDMETHOD(LockRect)(THIS_ UINT level, D3DLOCKED_RECT *locked_rect, const RECT *rect, DWORD flags) PURE;
STDMETHOD(UnlockRect)(THIS_ UINT Level) PURE;
STDMETHOD(AddDirtyRect)(THIS_ CONST RECT* pDirtyRect) PURE;
STDMETHOD(AddDirtyRect)(THIS_ const RECT *dirty_rect) PURE;
};
#undef INTERFACE
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDirect3DTexture9, 0x85c31227, 0x3de5, 0x4f00, 0x9b, 0x3a, 0xf1, 0x1a, 0xc3, 0x8c, 0x18, 0xb5);
#endif
#if !defined(__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IDirect3DTexture9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
@@ -1008,7 +1073,7 @@ DECLARE_INTERFACE_(IDirect3DVolumeTexture9,IDirect3DBaseTexture9)
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirect3DResource9 methods ***/
STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE;
STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
@@ -1025,12 +1090,16 @@ DECLARE_INTERFACE_(IDirect3DVolumeTexture9,IDirect3DBaseTexture9)
/*** IDirect3DVolumeTexture9 methods ***/
STDMETHOD(GetLevelDesc)(THIS_ UINT Level, D3DVOLUME_DESC *pDesc) PURE;
STDMETHOD(GetVolumeLevel)(THIS_ UINT Level, IDirect3DVolume9** ppVolumeLevel) PURE;
STDMETHOD(LockBox)(THIS_ UINT Level, D3DLOCKED_BOX* pLockedVolume, CONST D3DBOX* pBox, DWORD Flags) PURE;
STDMETHOD(LockBox)(THIS_ UINT level, D3DLOCKED_BOX *locked_box, const D3DBOX *box, DWORD flags) PURE;
STDMETHOD(UnlockBox)(THIS_ UINT Level) PURE;
STDMETHOD(AddDirtyBox)(THIS_ CONST D3DBOX* pDirtyBox) PURE;
STDMETHOD(AddDirtyBox)(THIS_ const D3DBOX *dirty_box) PURE;
};
#undef INTERFACE
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDirect3DVolumeTexture9, 0x2518526c, 0xe789, 0x4111, 0xa7, 0xb9, 0x47, 0xef, 0x32, 0x8d, 0x13, 0xe6);
#endif
#if !defined(__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IDirect3DVolumeTexture9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
@@ -1103,6 +1172,10 @@ DECLARE_INTERFACE_(IDirect3DVertexDeclaration9,IUnknown)
};
#undef INTERFACE
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDirect3DVertexDeclaration9, 0xdd13c59c, 0x36fa, 0x4098, 0xa8, 0xfb, 0xc7, 0xed, 0x39, 0xdc, 0x85, 0x46);
#endif
#if !defined(__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IDirect3DVertexDeclaration9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
@@ -1137,6 +1210,10 @@ DECLARE_INTERFACE_(IDirect3DVertexShader9,IUnknown)
};
#undef INTERFACE
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDirect3DVertexShader9, 0xefc5557e, 0x6265, 0x4613, 0x8a, 0x94, 0x43, 0x85, 0x78, 0x89, 0xeb, 0x36);
#endif
#if !defined(__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IDirect3DVertexShader9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
@@ -1171,6 +1248,10 @@ DECLARE_INTERFACE_(IDirect3DPixelShader9,IUnknown)
};
#undef INTERFACE
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDirect3DPixelShader9, 0x6d3bdbdc, 0x5b02, 0x4415, 0xb8, 0x52, 0xce, 0x5e, 0x8b, 0xcc, 0xb2, 0x89);
#endif
#if !defined(__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IDirect3DPixelShader9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
@@ -1206,6 +1287,10 @@ DECLARE_INTERFACE_(IDirect3DStateBlock9,IUnknown)
};
#undef INTERFACE
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDirect3DStateBlock9, 0xb07c4fe5, 0x310d, 0x4ba8, 0xa2, 0x3c, 0x4f, 0xf, 0x20, 0x6f, 0x21, 0x8b);
#endif
#if !defined(__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IDirect3DStateBlock9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
@@ -1245,6 +1330,10 @@ DECLARE_INTERFACE_(IDirect3DQuery9,IUnknown)
};
#undef INTERFACE
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDirect3DQuery9, 0xd9771460, 0xa695, 0x4f26, 0xbb, 0xd3, 0x27, 0xb8, 0x40, 0xb5, 0x41, 0xcc);
#endif
#if !defined(__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IDirect3DQuery9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
@@ -1294,11 +1383,12 @@ DECLARE_INTERFACE_(IDirect3DDevice9,IUnknown)
STDMETHOD(GetSwapChain)(THIS_ UINT iSwapChain, IDirect3DSwapChain9** pSwapChain) PURE;
STDMETHOD_(UINT, GetNumberOfSwapChains)(THIS) PURE;
STDMETHOD(Reset)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters) PURE;
STDMETHOD(Present)(THIS_ CONST RECT* pSourceRect, CONST RECT* pDestRect, HWND hDestWindowOverride, CONST RGNDATA* pDirtyRegion) PURE;
STDMETHOD(Present)(THIS_ const RECT *src_rect, const RECT *dst_rect,
HWND dst_window_override, const RGNDATA *dirty_region) PURE;
STDMETHOD(GetBackBuffer)(THIS_ UINT iSwapChain, UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, IDirect3DSurface9** ppBackBuffer) PURE;
STDMETHOD(GetRasterStatus)(THIS_ UINT iSwapChain, D3DRASTER_STATUS* pRasterStatus) PURE;
STDMETHOD(SetDialogBoxMode)(THIS_ BOOL bEnableDialogs) PURE;
STDMETHOD_(void, SetGammaRamp)(THIS_ UINT iSwapChain, DWORD Flags, CONST D3DGAMMARAMP* pRamp) PURE;
STDMETHOD_(void, SetGammaRamp)(THIS_ UINT swapchain_idx, DWORD flags, const D3DGAMMARAMP *ramp) PURE;
STDMETHOD_(void, GetGammaRamp)(THIS_ UINT iSwapChain, D3DGAMMARAMP* pRamp) PURE;
STDMETHOD(CreateTexture)(THIS_ UINT Width, UINT Height, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DTexture9** ppTexture, HANDLE* pSharedHandle) PURE;
STDMETHOD(CreateVolumeTexture)(THIS_ UINT Width, UINT Height, UINT Depth, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DVolumeTexture9** ppVolumeTexture, HANDLE* pSharedHandle) PURE;
@@ -1307,12 +1397,14 @@ DECLARE_INTERFACE_(IDirect3DDevice9,IUnknown)
STDMETHOD(CreateIndexBuffer)(THIS_ UINT Length, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DIndexBuffer9** ppIndexBuffer, HANDLE* pSharedHandle) PURE;
STDMETHOD(CreateRenderTarget)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Lockable, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
STDMETHOD(CreateDepthStencilSurface)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Discard, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
STDMETHOD(UpdateSurface)(THIS_ IDirect3DSurface9* pSourceSurface, CONST RECT* pSourceRect, IDirect3DSurface9* pDestinationSurface, CONST POINT* pDestPoint) PURE;
STDMETHOD(UpdateSurface)(THIS_ IDirect3DSurface9 *src_surface, const RECT *src_rect,
IDirect3DSurface9 *dst_surface, const POINT *dst_point) PURE;
STDMETHOD(UpdateTexture)(THIS_ IDirect3DBaseTexture9* pSourceTexture, IDirect3DBaseTexture9* pDestinationTexture) PURE;
STDMETHOD(GetRenderTargetData)(THIS_ IDirect3DSurface9* pRenderTarget, IDirect3DSurface9* pDestSurface) PURE;
STDMETHOD(GetFrontBufferData)(THIS_ UINT iSwapChain, IDirect3DSurface9* pDestSurface) PURE;
STDMETHOD(StretchRect)(THIS_ IDirect3DSurface9* pSourceSurface, CONST RECT* pSourceRect, IDirect3DSurface9* pDestSurface, CONST RECT* pDestRect, D3DTEXTUREFILTERTYPE Filter) PURE;
STDMETHOD(ColorFill)(THIS_ IDirect3DSurface9* pSurface, CONST RECT* pRect, D3DCOLOR color) PURE;
STDMETHOD(StretchRect)(THIS_ IDirect3DSurface9 *src_surface, const RECT *src_rect,
IDirect3DSurface9 *dst_surface, const RECT *dst_rect, D3DTEXTUREFILTERTYPE filter) PURE;
STDMETHOD(ColorFill)(THIS_ IDirect3DSurface9 *surface, const RECT *rect, D3DCOLOR color) PURE;
STDMETHOD(CreateOffscreenPlainSurface)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DPOOL Pool, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
STDMETHOD(SetRenderTarget)(THIS_ DWORD RenderTargetIndex, IDirect3DSurface9* pRenderTarget) PURE;
STDMETHOD(GetRenderTarget)(THIS_ DWORD RenderTargetIndex, IDirect3DSurface9** ppRenderTarget) PURE;
@@ -1320,26 +1412,27 @@ DECLARE_INTERFACE_(IDirect3DDevice9,IUnknown)
STDMETHOD(GetDepthStencilSurface)(THIS_ IDirect3DSurface9** ppZStencilSurface) PURE;
STDMETHOD(BeginScene)(THIS) PURE;
STDMETHOD(EndScene)(THIS) PURE;
STDMETHOD(Clear)(THIS_ DWORD Count, CONST D3DRECT* pRects, DWORD Flags, D3DCOLOR Color, float Z, DWORD Stencil) PURE;
STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE State, CONST D3DMATRIX* pMatrix) PURE;
STDMETHOD(Clear)(THIS_ DWORD rect_count, const D3DRECT *rects, DWORD flags,
D3DCOLOR color, float z, DWORD stencil) PURE;
STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE state, const D3DMATRIX *matrix) PURE;
STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE State, D3DMATRIX* pMatrix) PURE;
STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE, CONST D3DMATRIX*) PURE;
STDMETHOD(SetViewport)(THIS_ CONST D3DVIEWPORT9* pViewport) PURE;
STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE state, const D3DMATRIX *matrix) PURE;
STDMETHOD(SetViewport)(THIS_ const D3DVIEWPORT9 *viewport) PURE;
STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT9* pViewport) PURE;
STDMETHOD(SetMaterial)(THIS_ CONST D3DMATERIAL9* pMaterial) PURE;
STDMETHOD(SetMaterial)(THIS_ const D3DMATERIAL9 *material) PURE;
STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL9* pMaterial) PURE;
STDMETHOD(SetLight)(THIS_ DWORD Index, CONST D3DLIGHT9*) PURE;
STDMETHOD(SetLight)(THIS_ DWORD index, const D3DLIGHT9 *light) PURE;
STDMETHOD(GetLight)(THIS_ DWORD Index, D3DLIGHT9*) PURE;
STDMETHOD(LightEnable)(THIS_ DWORD Index, BOOL Enable) PURE;
STDMETHOD(GetLightEnable)(THIS_ DWORD Index, BOOL* pEnable) PURE;
STDMETHOD(SetClipPlane)(THIS_ DWORD Index, CONST float* pPlane) PURE;
STDMETHOD(SetClipPlane)(THIS_ DWORD index, const float *plane) PURE;
STDMETHOD(GetClipPlane)(THIS_ DWORD Index, float* pPlane) PURE;
STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE State, DWORD Value) PURE;
STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE State, DWORD* pValue) PURE;
STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE Type, IDirect3DStateBlock9** ppSB) PURE;
STDMETHOD(BeginStateBlock)(THIS) PURE;
STDMETHOD(EndStateBlock)(THIS_ IDirect3DStateBlock9** ppSB) PURE;
STDMETHOD(SetClipStatus)(THIS_ CONST D3DCLIPSTATUS9* pClipStatus) PURE;
STDMETHOD(SetClipStatus)(THIS_ const D3DCLIPSTATUS9 *clip_status) PURE;
STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS9* pClipStatus) PURE;
STDMETHOD(GetTexture)(THIS_ DWORD Stage, IDirect3DBaseTexture9** ppTexture) PURE;
STDMETHOD(SetTexture)(THIS_ DWORD Stage, IDirect3DBaseTexture9* pTexture) PURE;
@@ -1348,11 +1441,11 @@ DECLARE_INTERFACE_(IDirect3DDevice9,IUnknown)
STDMETHOD(GetSamplerState)(THIS_ DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD* pValue) PURE;
STDMETHOD(SetSamplerState)(THIS_ DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value) PURE;
STDMETHOD(ValidateDevice)(THIS_ DWORD* pNumPasses) PURE;
STDMETHOD(SetPaletteEntries)(THIS_ UINT PaletteNumber, CONST PALETTEENTRY* pEntries) PURE;
STDMETHOD(SetPaletteEntries)(THIS_ UINT palette_idx, const PALETTEENTRY *entries) PURE;
STDMETHOD(GetPaletteEntries)(THIS_ UINT PaletteNumber,PALETTEENTRY* pEntries) PURE;
STDMETHOD(SetCurrentTexturePalette)(THIS_ UINT PaletteNumber) PURE;
STDMETHOD(GetCurrentTexturePalette)(THIS_ UINT *PaletteNumber) PURE;
STDMETHOD(SetScissorRect)(THIS_ CONST RECT* pRect) PURE;
STDMETHOD(SetScissorRect)(THIS_ const RECT *rect) PURE;
STDMETHOD(GetScissorRect)(THIS_ RECT* pRect) PURE;
STDMETHOD(SetSoftwareVertexProcessing)(THIS_ BOOL bSoftware) PURE;
STDMETHOD_(BOOL, GetSoftwareVertexProcessing)(THIS) PURE;
@@ -1360,22 +1453,25 @@ DECLARE_INTERFACE_(IDirect3DDevice9,IUnknown)
STDMETHOD_(float, GetNPatchMode)(THIS) PURE;
STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT StartVertex, UINT PrimitiveCount) PURE;
STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount) PURE;
STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT PrimitiveCount, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride) PURE;
STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT MinVertexIndex, UINT NumVertices, UINT PrimitiveCount, CONST void* pIndexData, D3DFORMAT IndexDataFormat, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride) PURE;
STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE primitive_type,
UINT primitive_count, const void *data, UINT stride) PURE;
STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE primitive_type, UINT min_vertex_idx, UINT vertex_count,
UINT primitive_count, const void *index_data, D3DFORMAT index_format, const void *data, UINT stride) PURE;
STDMETHOD(ProcessVertices)(THIS_ UINT SrcStartIndex, UINT DestIndex, UINT VertexCount, IDirect3DVertexBuffer9* pDestBuffer, IDirect3DVertexDeclaration9* pVertexDecl, DWORD Flags) PURE;
STDMETHOD(CreateVertexDeclaration)(THIS_ CONST D3DVERTEXELEMENT9* pVertexElements, IDirect3DVertexDeclaration9** ppDecl) PURE;
STDMETHOD(CreateVertexDeclaration)(THIS_ const D3DVERTEXELEMENT9 *elements,
IDirect3DVertexDeclaration9 **declaration) PURE;
STDMETHOD(SetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9* pDecl) PURE;
STDMETHOD(GetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9** ppDecl) PURE;
STDMETHOD(SetFVF)(THIS_ DWORD FVF) PURE;
STDMETHOD(GetFVF)(THIS_ DWORD* pFVF) PURE;
STDMETHOD(CreateVertexShader)(THIS_ CONST DWORD* pFunction, IDirect3DVertexShader9** ppShader) PURE;
STDMETHOD(CreateVertexShader)(THIS_ const DWORD *byte_code, IDirect3DVertexShader9 **shader) PURE;
STDMETHOD(SetVertexShader)(THIS_ IDirect3DVertexShader9* pShader) PURE;
STDMETHOD(GetVertexShader)(THIS_ IDirect3DVertexShader9** ppShader) PURE;
STDMETHOD(SetVertexShaderConstantF)(THIS_ UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) PURE;
STDMETHOD(SetVertexShaderConstantF)(THIS_ UINT reg_idx, const float *data, UINT count) PURE;
STDMETHOD(GetVertexShaderConstantF)(THIS_ UINT StartRegister, float* pConstantData, UINT Vector4fCount) PURE;
STDMETHOD(SetVertexShaderConstantI)(THIS_ UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) PURE;
STDMETHOD(SetVertexShaderConstantI)(THIS_ UINT reg_idx, const int *data, UINT count) PURE;
STDMETHOD(GetVertexShaderConstantI)(THIS_ UINT StartRegister, int* pConstantData, UINT Vector4iCount) PURE;
STDMETHOD(SetVertexShaderConstantB)(THIS_ UINT StartRegister, CONST BOOL* pConstantData, UINT BoolCount) PURE;
STDMETHOD(SetVertexShaderConstantB)(THIS_ UINT reg_idx, const BOOL *data, UINT count) PURE;
STDMETHOD(GetVertexShaderConstantB)(THIS_ UINT StartRegister, BOOL* pConstantData, UINT BoolCount) PURE;
STDMETHOD(SetStreamSource)(THIS_ UINT StreamNumber, IDirect3DVertexBuffer9* pStreamData, UINT OffsetInBytes, UINT Stride) PURE;
STDMETHOD(GetStreamSource)(THIS_ UINT StreamNumber, IDirect3DVertexBuffer9** ppStreamData, UINT* OffsetInBytes, UINT* pStride) PURE;
@@ -1383,22 +1479,26 @@ DECLARE_INTERFACE_(IDirect3DDevice9,IUnknown)
STDMETHOD(GetStreamSourceFreq)(THIS_ UINT StreamNumber, UINT* Divider) PURE;
STDMETHOD(SetIndices)(THIS_ IDirect3DIndexBuffer9* pIndexData) PURE;
STDMETHOD(GetIndices)(THIS_ IDirect3DIndexBuffer9** ppIndexData) PURE;
STDMETHOD(CreatePixelShader)(THIS_ CONST DWORD* pFunction, IDirect3DPixelShader9** ppShader) PURE;
STDMETHOD(CreatePixelShader)(THIS_ const DWORD *byte_code, IDirect3DPixelShader9 **shader) PURE;
STDMETHOD(SetPixelShader)(THIS_ IDirect3DPixelShader9* pShader) PURE;
STDMETHOD(GetPixelShader)(THIS_ IDirect3DPixelShader9** ppShader) PURE;
STDMETHOD(SetPixelShaderConstantF)(THIS_ UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) PURE;
STDMETHOD(SetPixelShaderConstantF)(THIS_ UINT reg_idx, const float *data, UINT count) PURE;
STDMETHOD(GetPixelShaderConstantF)(THIS_ UINT StartRegister, float* pConstantData, UINT Vector4fCount) PURE;
STDMETHOD(SetPixelShaderConstantI)(THIS_ UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) PURE;
STDMETHOD(SetPixelShaderConstantI)(THIS_ UINT reg_idx, const int *data, UINT count) PURE;
STDMETHOD(GetPixelShaderConstantI)(THIS_ UINT StartRegister, int* pConstantData, UINT Vector4iCount) PURE;
STDMETHOD(SetPixelShaderConstantB)(THIS_ UINT StartRegister, CONST BOOL* pConstantData, UINT BoolCount) PURE;
STDMETHOD(SetPixelShaderConstantB)(THIS_ UINT reg_idx, const BOOL *data, UINT count) PURE;
STDMETHOD(GetPixelShaderConstantB)(THIS_ UINT StartRegister, BOOL* pConstantData, UINT BoolCount) PURE;
STDMETHOD(DrawRectPatch)(THIS_ UINT Handle, CONST float* pNumSegs, CONST D3DRECTPATCH_INFO* pRectPatchInfo) PURE;
STDMETHOD(DrawTriPatch)(THIS_ UINT Handle, CONST float* pNumSegs, CONST D3DTRIPATCH_INFO* pTriPatchInfo) PURE;
STDMETHOD(DrawRectPatch)(THIS_ UINT handle, const float *segment_count, const D3DRECTPATCH_INFO *patch_info) PURE;
STDMETHOD(DrawTriPatch)(THIS_ UINT handle, const float *segment_count, const D3DTRIPATCH_INFO *patch_info) PURE;
STDMETHOD(DeletePatch)(THIS_ UINT Handle) PURE;
STDMETHOD(CreateQuery)(THIS_ D3DQUERYTYPE Type, IDirect3DQuery9** ppQuery) PURE;
};
#undef INTERFACE
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDirect3DDevice9, 0xd0223b96, 0xbf7a, 0x43fd, 0x92, 0xbd, 0xa4, 0x3b, 0xd, 0x82, 0xb9, 0xeb);
#endif
#if !defined(__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IDirect3DDevice9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
@@ -1671,11 +1771,12 @@ DECLARE_INTERFACE_(IDirect3DDevice9Ex,IDirect3DDevice9)
STDMETHOD(GetSwapChain)(THIS_ UINT iSwapChain, IDirect3DSwapChain9** pSwapChain) PURE;
STDMETHOD_(UINT, GetNumberOfSwapChains)(THIS) PURE;
STDMETHOD(Reset)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters) PURE;
STDMETHOD(Present)(THIS_ CONST RECT* pSourceRect, CONST RECT* pDestRect, HWND hDestWindowOverride, CONST RGNDATA* pDirtyRegion) PURE;
STDMETHOD(Present)(THIS_ const RECT *src_rect, const RECT *dst_rect,
HWND dst_window_override, const RGNDATA *dirty_region) PURE;
STDMETHOD(GetBackBuffer)(THIS_ UINT iSwapChain, UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, IDirect3DSurface9** ppBackBuffer) PURE;
STDMETHOD(GetRasterStatus)(THIS_ UINT iSwapChain, D3DRASTER_STATUS* pRasterStatus) PURE;
STDMETHOD(SetDialogBoxMode)(THIS_ BOOL bEnableDialogs) PURE;
STDMETHOD_(void, SetGammaRamp)(THIS_ UINT iSwapChain, DWORD Flags, CONST D3DGAMMARAMP* pRamp) PURE;
STDMETHOD_(void, SetGammaRamp)(THIS_ UINT swapchain_idx, DWORD flags, const D3DGAMMARAMP *ramp) PURE;
STDMETHOD_(void, GetGammaRamp)(THIS_ UINT iSwapChain, D3DGAMMARAMP* pRamp) PURE;
STDMETHOD(CreateTexture)(THIS_ UINT Width, UINT Height, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DTexture9** ppTexture, HANDLE* pSharedHandle) PURE;
STDMETHOD(CreateVolumeTexture)(THIS_ UINT Width, UINT Height, UINT Depth, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DVolumeTexture9** ppVolumeTexture, HANDLE* pSharedHandle) PURE;
@@ -1684,12 +1785,14 @@ DECLARE_INTERFACE_(IDirect3DDevice9Ex,IDirect3DDevice9)
STDMETHOD(CreateIndexBuffer)(THIS_ UINT Length, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DIndexBuffer9** ppIndexBuffer, HANDLE* pSharedHandle) PURE;
STDMETHOD(CreateRenderTarget)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Lockable, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
STDMETHOD(CreateDepthStencilSurface)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Discard, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
STDMETHOD(UpdateSurface)(THIS_ IDirect3DSurface9* pSourceSurface, CONST RECT* pSourceRect, IDirect3DSurface9* pDestinationSurface, CONST POINT* pDestPoint) PURE;
STDMETHOD(UpdateSurface)(THIS_ IDirect3DSurface9 *src_surface, const RECT *src_rect,
IDirect3DSurface9 *dst_surface, const POINT *dst_point) PURE;
STDMETHOD(UpdateTexture)(THIS_ IDirect3DBaseTexture9* pSourceTexture, IDirect3DBaseTexture9* pDestinationTexture) PURE;
STDMETHOD(GetRenderTargetData)(THIS_ IDirect3DSurface9* pRenderTarget, IDirect3DSurface9* pDestSurface) PURE;
STDMETHOD(GetFrontBufferData)(THIS_ UINT iSwapChain, IDirect3DSurface9* pDestSurface) PURE;
STDMETHOD(StretchRect)(THIS_ IDirect3DSurface9* pSourceSurface, CONST RECT* pSourceRect, IDirect3DSurface9* pDestSurface, CONST RECT* pDestRect, D3DTEXTUREFILTERTYPE Filter) PURE;
STDMETHOD(ColorFill)(THIS_ IDirect3DSurface9* pSurface, CONST RECT* pRect, D3DCOLOR color) PURE;
STDMETHOD(StretchRect)(THIS_ IDirect3DSurface9 *src_surface, const RECT *src_rect,
IDirect3DSurface9 *dst_surface, const RECT *dst_rect, D3DTEXTUREFILTERTYPE filter) PURE;
STDMETHOD(ColorFill)(THIS_ IDirect3DSurface9 *surface, const RECT *rect, D3DCOLOR color) PURE;
STDMETHOD(CreateOffscreenPlainSurface)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DPOOL Pool, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
STDMETHOD(SetRenderTarget)(THIS_ DWORD RenderTargetIndex, IDirect3DSurface9* pRenderTarget) PURE;
STDMETHOD(GetRenderTarget)(THIS_ DWORD RenderTargetIndex, IDirect3DSurface9** ppRenderTarget) PURE;
@@ -1697,26 +1800,27 @@ DECLARE_INTERFACE_(IDirect3DDevice9Ex,IDirect3DDevice9)
STDMETHOD(GetDepthStencilSurface)(THIS_ IDirect3DSurface9** ppZStencilSurface) PURE;
STDMETHOD(BeginScene)(THIS) PURE;
STDMETHOD(EndScene)(THIS) PURE;
STDMETHOD(Clear)(THIS_ DWORD Count, CONST D3DRECT* pRects, DWORD Flags, D3DCOLOR Color, float Z, DWORD Stencil) PURE;
STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE State, CONST D3DMATRIX* pMatrix) PURE;
STDMETHOD(Clear)(THIS_ DWORD rect_count, const D3DRECT *rects, DWORD flags,
D3DCOLOR color, float z, DWORD stencil) PURE;
STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE state, const D3DMATRIX *matrix) PURE;
STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE State, D3DMATRIX* pMatrix) PURE;
STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE, CONST D3DMATRIX*) PURE;
STDMETHOD(SetViewport)(THIS_ CONST D3DVIEWPORT9* pViewport) PURE;
STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE state, const D3DMATRIX *matrix) PURE;
STDMETHOD(SetViewport)(THIS_ const D3DVIEWPORT9 *viewport) PURE;
STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT9* pViewport) PURE;
STDMETHOD(SetMaterial)(THIS_ CONST D3DMATERIAL9* pMaterial) PURE;
STDMETHOD(SetMaterial)(THIS_ const D3DMATERIAL9 *material) PURE;
STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL9* pMaterial) PURE;
STDMETHOD(SetLight)(THIS_ DWORD Index, CONST D3DLIGHT9*) PURE;
STDMETHOD(SetLight)(THIS_ DWORD index, const D3DLIGHT9 *light) PURE;
STDMETHOD(GetLight)(THIS_ DWORD Index, D3DLIGHT9*) PURE;
STDMETHOD(LightEnable)(THIS_ DWORD Index, BOOL Enable) PURE;
STDMETHOD(GetLightEnable)(THIS_ DWORD Index, BOOL* pEnable) PURE;
STDMETHOD(SetClipPlane)(THIS_ DWORD Index, CONST float* pPlane) PURE;
STDMETHOD(SetClipPlane)(THIS_ DWORD index, const float *plane) PURE;
STDMETHOD(GetClipPlane)(THIS_ DWORD Index, float* pPlane) PURE;
STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE State, DWORD Value) PURE;
STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE State, DWORD* pValue) PURE;
STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE Type, IDirect3DStateBlock9** ppSB) PURE;
STDMETHOD(BeginStateBlock)(THIS) PURE;
STDMETHOD(EndStateBlock)(THIS_ IDirect3DStateBlock9** ppSB) PURE;
STDMETHOD(SetClipStatus)(THIS_ CONST D3DCLIPSTATUS9* pClipStatus) PURE;
STDMETHOD(SetClipStatus)(THIS_ const D3DCLIPSTATUS9 *clip_status) PURE;
STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS9* pClipStatus) PURE;
STDMETHOD(GetTexture)(THIS_ DWORD Stage, IDirect3DBaseTexture9** ppTexture) PURE;
STDMETHOD(SetTexture)(THIS_ DWORD Stage, IDirect3DBaseTexture9* pTexture) PURE;
@@ -1725,11 +1829,11 @@ DECLARE_INTERFACE_(IDirect3DDevice9Ex,IDirect3DDevice9)
STDMETHOD(GetSamplerState)(THIS_ DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD* pValue) PURE;
STDMETHOD(SetSamplerState)(THIS_ DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value) PURE;
STDMETHOD(ValidateDevice)(THIS_ DWORD* pNumPasses) PURE;
STDMETHOD(SetPaletteEntries)(THIS_ UINT PaletteNumber, CONST PALETTEENTRY* pEntries) PURE;
STDMETHOD(SetPaletteEntries)(THIS_ UINT palette_idx, const PALETTEENTRY *entries) PURE;
STDMETHOD(GetPaletteEntries)(THIS_ UINT PaletteNumber,PALETTEENTRY* pEntries) PURE;
STDMETHOD(SetCurrentTexturePalette)(THIS_ UINT PaletteNumber) PURE;
STDMETHOD(GetCurrentTexturePalette)(THIS_ UINT *PaletteNumber) PURE;
STDMETHOD(SetScissorRect)(THIS_ CONST RECT* pRect) PURE;
STDMETHOD(SetScissorRect)(THIS_ const RECT *rect) PURE;
STDMETHOD(GetScissorRect)(THIS_ RECT* pRect) PURE;
STDMETHOD(SetSoftwareVertexProcessing)(THIS_ BOOL bSoftware) PURE;
STDMETHOD_(BOOL, GetSoftwareVertexProcessing)(THIS) PURE;
@@ -1737,22 +1841,25 @@ DECLARE_INTERFACE_(IDirect3DDevice9Ex,IDirect3DDevice9)
STDMETHOD_(float, GetNPatchMode)(THIS) PURE;
STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT StartVertex, UINT PrimitiveCount) PURE;
STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount) PURE;
STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT PrimitiveCount, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride) PURE;
STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT MinVertexIndex, UINT NumVertices, UINT PrimitiveCount, CONST void* pIndexData, D3DFORMAT IndexDataFormat, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride) PURE;
STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE primitive_type,
UINT primitive_count, const void *data, UINT stride) PURE;
STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE primitive_type, UINT min_vertex_idx, UINT vertex_count,
UINT primitive_count, const void *index_data, D3DFORMAT index_format, const void *data, UINT stride) PURE;
STDMETHOD(ProcessVertices)(THIS_ UINT SrcStartIndex, UINT DestIndex, UINT VertexCount, IDirect3DVertexBuffer9* pDestBuffer, IDirect3DVertexDeclaration9* pVertexDecl, DWORD Flags) PURE;
STDMETHOD(CreateVertexDeclaration)(THIS_ CONST D3DVERTEXELEMENT9* pVertexElements, IDirect3DVertexDeclaration9** ppDecl) PURE;
STDMETHOD(CreateVertexDeclaration)(THIS_ const D3DVERTEXELEMENT9 *elements,
IDirect3DVertexDeclaration9 **declaration) PURE;
STDMETHOD(SetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9* pDecl) PURE;
STDMETHOD(GetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9** ppDecl) PURE;
STDMETHOD(SetFVF)(THIS_ DWORD FVF) PURE;
STDMETHOD(GetFVF)(THIS_ DWORD* pFVF) PURE;
STDMETHOD(CreateVertexShader)(THIS_ CONST DWORD* pFunction, IDirect3DVertexShader9** ppShader) PURE;
STDMETHOD(CreateVertexShader)(THIS_ const DWORD *byte_core, IDirect3DVertexShader9 **shader) PURE;
STDMETHOD(SetVertexShader)(THIS_ IDirect3DVertexShader9* pShader) PURE;
STDMETHOD(GetVertexShader)(THIS_ IDirect3DVertexShader9** ppShader) PURE;
STDMETHOD(SetVertexShaderConstantF)(THIS_ UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) PURE;
STDMETHOD(SetVertexShaderConstantF)(THIS_ UINT reg_idx, const float *data, UINT count) PURE;
STDMETHOD(GetVertexShaderConstantF)(THIS_ UINT StartRegister, float* pConstantData, UINT Vector4fCount) PURE;
STDMETHOD(SetVertexShaderConstantI)(THIS_ UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) PURE;
STDMETHOD(SetVertexShaderConstantI)(THIS_ UINT reg_idx, const int *data, UINT count) PURE;
STDMETHOD(GetVertexShaderConstantI)(THIS_ UINT StartRegister, int* pConstantData, UINT Vector4iCount) PURE;
STDMETHOD(SetVertexShaderConstantB)(THIS_ UINT StartRegister, CONST BOOL* pConstantData, UINT BoolCount) PURE;
STDMETHOD(SetVertexShaderConstantB)(THIS_ UINT reg_idx, const BOOL *data, UINT count) PURE;
STDMETHOD(GetVertexShaderConstantB)(THIS_ UINT StartRegister, BOOL* pConstantData, UINT BoolCount) PURE;
STDMETHOD(SetStreamSource)(THIS_ UINT StreamNumber, IDirect3DVertexBuffer9* pStreamData, UINT OffsetInBytes, UINT Stride) PURE;
STDMETHOD(GetStreamSource)(THIS_ UINT StreamNumber, IDirect3DVertexBuffer9** ppStreamData, UINT* OffsetInBytes, UINT* pStride) PURE;
@@ -1760,38 +1867,47 @@ DECLARE_INTERFACE_(IDirect3DDevice9Ex,IDirect3DDevice9)
STDMETHOD(GetStreamSourceFreq)(THIS_ UINT StreamNumber, UINT* Divider) PURE;
STDMETHOD(SetIndices)(THIS_ IDirect3DIndexBuffer9* pIndexData) PURE;
STDMETHOD(GetIndices)(THIS_ IDirect3DIndexBuffer9** ppIndexData) PURE;
STDMETHOD(CreatePixelShader)(THIS_ CONST DWORD* pFunction, IDirect3DPixelShader9** ppShader) PURE;
STDMETHOD(CreatePixelShader)(THIS_ const DWORD *byte_code, IDirect3DPixelShader9 **shader) PURE;
STDMETHOD(SetPixelShader)(THIS_ IDirect3DPixelShader9* pShader) PURE;
STDMETHOD(GetPixelShader)(THIS_ IDirect3DPixelShader9** ppShader) PURE;
STDMETHOD(SetPixelShaderConstantF)(THIS_ UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) PURE;
STDMETHOD(SetPixelShaderConstantF)(THIS_ UINT reg_idx, const float *data, UINT count) PURE;
STDMETHOD(GetPixelShaderConstantF)(THIS_ UINT StartRegister, float* pConstantData, UINT Vector4fCount) PURE;
STDMETHOD(SetPixelShaderConstantI)(THIS_ UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) PURE;
STDMETHOD(SetPixelShaderConstantI)(THIS_ UINT reg_idx, const int *data, UINT count) PURE;
STDMETHOD(GetPixelShaderConstantI)(THIS_ UINT StartRegister, int* pConstantData, UINT Vector4iCount) PURE;
STDMETHOD(SetPixelShaderConstantB)(THIS_ UINT StartRegister, CONST BOOL* pConstantData, UINT BoolCount) PURE;
STDMETHOD(SetPixelShaderConstantB)(THIS_ UINT reg_idx, const BOOL *data, UINT count) PURE;
STDMETHOD(GetPixelShaderConstantB)(THIS_ UINT StartRegister, BOOL* pConstantData, UINT BoolCount) PURE;
STDMETHOD(DrawRectPatch)(THIS_ UINT Handle, CONST float* pNumSegs, CONST D3DRECTPATCH_INFO* pRectPatchInfo) PURE;
STDMETHOD(DrawTriPatch)(THIS_ UINT Handle, CONST float* pNumSegs, CONST D3DTRIPATCH_INFO* pTriPatchInfo) PURE;
STDMETHOD(DrawRectPatch)(THIS_ UINT handle, const float *segment_count, const D3DRECTPATCH_INFO *patch_info) PURE;
STDMETHOD(DrawTriPatch)(THIS_ UINT handle, const float *segment_count, const D3DTRIPATCH_INFO *patch_info) PURE;
STDMETHOD(DeletePatch)(THIS_ UINT Handle) PURE;
STDMETHOD(CreateQuery)(THIS_ D3DQUERYTYPE Type, IDirect3DQuery9** ppQuery) PURE;
/* IDirect3DDevice9Ex methods */
STDMETHOD(SetConvolutionMonoKernel)(THIS_ UINT width, UINT height, float *rows, float *columns) PURE;
STDMETHOD(ComposeRects)(THIS_ IDirect3DSurface9 *pSrc, IDirect3DSurface9 *pDst, IDirect3DVertexBuffer9 *pSrcRectDescs, UINT NumRects, IDirect3DVertexBuffer9 *pDstRectDescs, D3DCOMPOSERECTSOP Operation, int Xoffset, int Yoffset) PURE;
STDMETHOD(PresentEx)(THIS_ CONST RECT *pSourceRect, CONST RECT *pDestRect, HWND hDestWindowOverride, CONST RGNDATA *pDirtyRegion, DWORD dwFlags) PURE;
STDMETHOD(ComposeRects)(THIS_ IDirect3DSurface9 *src_surface, IDirect3DSurface9 *dst_surface,
IDirect3DVertexBuffer9 *src_descs, UINT rect_count, IDirect3DVertexBuffer9 *dst_descs,
D3DCOMPOSERECTSOP operation, INT offset_x, INT offset_y) PURE;
STDMETHOD(PresentEx)(THIS_ const RECT *src_rect, const RECT *dst_rect,
HWND dst_window_override, const RGNDATA *dirty_region, DWORD flags) PURE;
STDMETHOD(GetGPUThreadPriority)(THIS_ INT *pPriority) PURE;
STDMETHOD(SetGPUThreadPriority)(THIS_ INT Priority) PURE;
STDMETHOD(WaitForVBlank)(THIS_ UINT iSwapChain) PURE;
STDMETHOD(CheckresourceResidency)(THIS_ IDirect3DResource9 ** pResourceArray, UINT32 Numresources) PURE;
STDMETHOD(CheckResourceResidency)(THIS_ IDirect3DResource9 **resources, UINT32 resource_count) PURE;
STDMETHOD(SetMaximumFrameLatency)(THIS_ UINT MaxLatency) PURE;
STDMETHOD(GetMaximumFrameLatency)(THIS_ UINT *pMaxLatenxy) PURE;
STDMETHOD(CheckdeviceState)(THIS_ HWND hDestinationWindow) PURE;
STDMETHOD(CheckDeviceState)(THIS_ HWND dst_window) PURE;
STDMETHOD(CreateRenderTargetEx)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultiSampleQuality, BOOL Lockable, IDirect3DSurface9 ** ppSurface, HANDLE *pSharedHandle, DWORD Usage) PURE;
STDMETHOD(CreateOffscreenPlainSurfaceEx)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DPOOL Pool, IDirect3DSurface9 **ppSurface, HANDLE *pSharedHandle, DWORD Usage) PURE;
STDMETHOD(CreateDepthStencilSurfaceEx)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultiSampleQuality, BOOL Discard, IDirect3DSurface9 **ppSurfface, HANDLE *pSharedHandle, DWORD Usage) PURE;
STDMETHOD(CreateDepthStencilSurfaceEx)(THIS_ UINT width, UINT height, D3DFORMAT format,
D3DMULTISAMPLE_TYPE multisample_type, DWORD multisample_quality, BOOL discard,
IDirect3DSurface9 **surface, HANDLE *shared_handle, DWORD usage) PURE;
STDMETHOD(ResetEx)(THIS_ D3DPRESENT_PARAMETERS *pPresentationParameters, D3DDISPLAYMODEEX *pFullscreenDisplayMode) PURE;
STDMETHOD(GetDisplayModeEx)(THIS_ UINT iSwapChain, D3DDISPLAYMODEEX *pMode, D3DDISPLAYROTATION *pRotation) PURE;
};
#undef INTERFACE
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDirect3DDevice9Ex, 0xb18b10ce, 0x2649, 0x405a, 0x87, 0xf, 0x95, 0xf7, 0x77, 0xd4, 0x31, 0x3a);
#endif
#if !defined(__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IDirect3DDevice9Ex_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
@@ -2070,25 +2186,25 @@ DECLARE_INTERFACE_(IDirect3DDevice9Ex,IDirect3DDevice9)
#define IDirect3DDevice9Ex_GetDisplayModeEx(p,a,b,c) (p)->GetDisplayModeEx(a,b,c)
#endif
#ifdef __cplusplus
extern "C" {
#endif /* defined(__cplusplus) */
int WINAPI D3DPERF_BeginEvent(D3DCOLOR,LPCWSTR);
int WINAPI D3DPERF_EndEvent(void);
DWORD WINAPI D3DPERF_GetStatus(void);
BOOL WINAPI D3DPERF_QueryRepeatFrame(void);
void WINAPI D3DPERF_SetMarker(D3DCOLOR,LPCWSTR);
void WINAPI D3DPERF_SetOptions(DWORD);
void WINAPI D3DPERF_SetRegion(D3DCOLOR,LPCWSTR);
int WINAPI D3DPERF_BeginEvent(D3DCOLOR color, const WCHAR *name);
int WINAPI D3DPERF_EndEvent(void);
DWORD WINAPI D3DPERF_GetStatus(void);
BOOL WINAPI D3DPERF_QueryRepeatFrame(void);
void WINAPI D3DPERF_SetMarker(D3DCOLOR color, const WCHAR *name);
void WINAPI D3DPERF_SetOptions(DWORD options);
void WINAPI D3DPERF_SetRegion(D3DCOLOR color, const WCHAR *name);
/* Define the main entrypoint as well */
IDirect3D9* WINAPI Direct3DCreate9(UINT SDKVersion);
HRESULT WINAPI Direct3DCreate9Ex(UINT SDKVersion, IDirect3D9Ex**);
#ifdef __cplusplus
} /* extern "C" */
#endif /* defined(__cplusplus) */
#endif /* __WINE_D3D9_H */
#endif /* _D3D9_H_ */
+31 -64
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2002-2003 Jason Edmeades
* Copyright (C) 2002-2003 Jason Edmeades
* Copyright (C) 2002-2003 Raphael Junqueira
* Copyright (C) 2005 Oliver Stieber
*
@@ -21,10 +21,6 @@
#ifndef __WINE_D3D9TYPES_H
#define __WINE_D3D9TYPES_H
#if(DIRECT3D_VERSION >= 0x0900)
#pragma pack(push, 4)
/*****************************************************************************
* Direct 3D v9 #defines
*/
@@ -112,9 +108,6 @@
#define D3DUSAGE_DYNAMIC 0x00000200L
#define D3DUSAGE_AUTOGENMIPMAP 0x00000400L
#define D3DUSAGE_DMAP 0x00004000L
#ifndef D3D_DISABLE_9EX
#define D3DUSAGE_TEXTAPI 0x10000000L
#endif
#define D3DUSAGE_QUERY_FILTER 0x00020000L
#define D3DUSAGE_QUERY_LEGACYBUMPMAP 0x00008000L
@@ -135,7 +128,7 @@
#define MAX_DEVICE_IDENTIFIER_STRING 512
#define D3DFVF_RESERVED0 0x0001
#define D3DFVF_POSITION_MASK 0x000E
#define D3DFVF_POSITION_MASK 0x400E
#define D3DFVF_XYZ 0x0002
#define D3DFVF_XYZRHW 0x0004
#define D3DFVF_XYZB1 0x0006
@@ -210,11 +203,13 @@
#define D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL 0x00000002 /* Discard Z buffer */
#define D3DPRESENTFLAG_DEVICECLIP 0x00000004 /* Clip the window blited into the client area 2k + xp only */
#define D3DPRESENTFLAG_VIDEO 0x00000010 /* backbuffer 'may' contain video data */
#define D3DPRESENTFLAG_NOAUTOROTATE 0x00000020 /* d3d9ex, ignore display rotation */
#define D3DPRESENTFLAG_UNPRUNEDMODE 0x00000040 /* d3d9ex, specify invalid display modes */
#define D3DPRESENT_BACK_BUFFERS_MAX 3L
#define D3DPRESENT_RATE_DEFAULT 0x00000000
/****************************
/****************************
* Vertex Shaders Declaration
*/
@@ -222,28 +217,19 @@ typedef enum _D3DDECLUSAGE {
D3DDECLUSAGE_POSITION = 0,
D3DDECLUSAGE_BLENDWEIGHT = 1,
D3DDECLUSAGE_BLENDINDICES = 2,
D3DDECLUSAGE_NORMAL = 3,
D3DDECLUSAGE_PSIZE = 4,
D3DDECLUSAGE_TEXCOORD = 5,
D3DDECLUSAGE_TANGENT = 6,
D3DDECLUSAGE_BINORMAL = 7,
D3DDECLUSAGE_TESSFACTOR = 8,
D3DDECLUSAGE_POSITIONT = 9,
D3DDECLUSAGE_COLOR = 10,
D3DDECLUSAGE_FOG = 11,
D3DDECLUSAGE_DEPTH = 12,
D3DDECLUSAGE_SAMPLE = 13
D3DDECLUSAGE_NORMAL = 3,
D3DDECLUSAGE_PSIZE = 4,
D3DDECLUSAGE_TEXCOORD = 5,
D3DDECLUSAGE_TANGENT = 6,
D3DDECLUSAGE_BINORMAL = 7,
D3DDECLUSAGE_TESSFACTOR = 8,
D3DDECLUSAGE_POSITIONT = 9,
D3DDECLUSAGE_COLOR = 10,
D3DDECLUSAGE_FOG = 11,
D3DDECLUSAGE_DEPTH = 12,
D3DDECLUSAGE_SAMPLE = 13
} D3DDECLUSAGE;
/* MSDN is quite confussing at this point...
http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/directx9_c/directx/graphics/reference/d3d/constants/OTHER_D3D.asp
says D3DMAX, and D3DMAXDECLUSAGE = D3DDECLUSAGE_DEPTH
http://msdn.microsoft.com/library/default.asp?url=/archive/en-us/directx9_c_summer_03/directx/graphics/reference/d3d/constants/other_d3d.asp
says MAXD3D, and D3DDECLUSAGE_SAMPLE
So both are defined
*/
#define D3DMAXDECLUSAGE D3DDECLUSAGE_SAMPLE
#define D3DMAXDECLUSAGEINDEX 15
#define D3DMAXDECLLENGTH 18
@@ -448,7 +434,7 @@ typedef enum _D3DSHADER_INSTRUCTION_OPCODE_TYPE {
D3DSIO_SETP = 94,
D3DSIO_TEXLDL = 95,
D3DSIO_BREAKP = 96,
D3DSIO_PHASE = 0xFFFD,
D3DSIO_COMMENT = 0xFFFE,
D3DSIO_END = 0XFFFF,
@@ -518,7 +504,7 @@ typedef enum _D3DSHADER_PARAM_DSTMOD_TYPE {
#define D3DSP_REGTYPE_MASK2 0x00001800
typedef enum _D3DSHADER_PARAM_REGISTER_TYPE {
D3DSPR_TEMP = 0,
D3DSPR_TEMP = 0,
D3DSPR_INPUT = 1,
D3DSPR_CONST = 2,
D3DSPR_ADDR = 3,
@@ -740,7 +726,7 @@ typedef enum _D3DDEGREETYPE {
D3DDEGREE_QUADRATIC = 2,
D3DDEGREE_CUBIC = 3,
D3DDEGREE_QUINTIC = 5,
D3DDEGREE_FORCE_DWORD = 0x7fffffff
} D3DDEGREETYPE;
@@ -790,7 +776,7 @@ typedef enum _D3DFORMAT {
D3DFMT_G16R16 = 34,
D3DFMT_A2R10G10B10 = 35,
D3DFMT_A16B16G16R16 = 36,
D3DFMT_A8P8 = 40,
D3DFMT_P8 = 41,
@@ -828,11 +814,6 @@ typedef enum _D3DFORMAT {
D3DFMT_D32F_LOCKABLE = 82,
D3DFMT_D24FS8 = 83,
#ifndef D3D_DISABLE_9EX
D3DFMT_D32_LOCKABLE = 84,
D3DFMT_S8_LOCKABLE = 85,
#endif
D3DFMT_VERTEXDATA = 100,
D3DFMT_INDEX16 = 101,
D3DFMT_INDEX32 = 102,
@@ -841,12 +822,12 @@ typedef enum _D3DFORMAT {
D3DFMT_R16F = 111,
D3DFMT_G16R16F = 112,
D3DFMT_A16B16G16R16F = 113,
/* IEEE formats */
D3DFMT_R32F = 114,
D3DFMT_G32R32F = 115,
D3DFMT_A32B32G32R32F = 116,
D3DFMT_CxV8U8 = 117,
@@ -1083,6 +1064,8 @@ typedef enum _D3DSWAPEFFECT {
D3DSWAPEFFECT_DISCARD = 1,
D3DSWAPEFFECT_FLIP = 2,
D3DSWAPEFFECT_COPY = 3,
D3DSWAPEFFECT_OVERLAY = 4,
D3DSWAPEFFECT_FLIPEX = 5,
D3DSWAPEFFECT_FORCE_DWORD = 0xFFFFFFFF
} D3DSWAPEFFECT;
@@ -1151,21 +1134,9 @@ typedef enum _D3DTEXTURESTAGESTATETYPE {
D3DTSS_BUMPENVMAT10 = 9,
D3DTSS_BUMPENVMAT11 = 10,
D3DTSS_TEXCOORDINDEX = 11,
#if 1 /* TODO: remove once samplerstates are implemented. */
D3DTSS_ADDRESSU = 13,
D3DTSS_ADDRESSV = 14,
D3DTSS_BORDERCOLOR = 15,
D3DTSS_MAGFILTER = 16,
D3DTSS_MINFILTER = 17,
D3DTSS_MIPFILTER = 18,
D3DTSS_MIPMAPLODBIAS = 19,
D3DTSS_MAXMIPLEVEL = 20,
D3DTSS_MAXANISOTROPY = 21,
#endif
D3DTSS_BUMPENVLSCALE = 22,
D3DTSS_BUMPENVLOFFSET = 23,
D3DTSS_TEXTURETRANSFORMFLAGS = 24,
D3DTSS_ADDRESSW = 25,
D3DTSS_COLORARG0 = 26,
D3DTSS_ALPHAARG0 = 27,
D3DTSS_RESULTARG = 28,
@@ -1231,7 +1202,7 @@ typedef enum _D3DSAMPLERSTATETYPE {
D3DSAMP_SRGBTEXTURE = 11,
D3DSAMP_ELEMENTINDEX = 12,
D3DSAMP_DMAPOFFSET = 13,
D3DSAMP_FORCE_DWORD = 0x7fffffff,
} D3DSAMPLERSTATETYPE;
@@ -1251,7 +1222,7 @@ typedef struct _D3DADAPTER_IDENTIFIER9 {
char Driver[MAX_DEVICE_IDENTIFIER_STRING];
char Description[MAX_DEVICE_IDENTIFIER_STRING];
char DeviceName[32];
LARGE_INTEGER DriverVersion;
LARGE_INTEGER DriverVersion;
DWORD VendorId;
DWORD DeviceId;
@@ -1331,13 +1302,13 @@ typedef struct _D3DDEVINFO_D3D9STAGETIMINGS {
/* Vertex cache optimization hints. */
typedef struct D3DDEVINFO_VCACHE {
/* Must be a 4 char code FOURCC (e.g. CACH) */
DWORD Pattern;
DWORD Pattern;
/* 0 to get the longest strips, 1 vertex cache */
DWORD OptMethod;
DWORD OptMethod;
/* Cache size to use (only valid if OptMethod==1) */
DWORD CacheSize;
/* internal for deciding when to restart strips, non user modifyable (only valid if OptMethod==1) */
DWORD MagicNumber;
/* internal for deciding when to restart strips, non user modifiable (only valid if OptMethod==1) */
DWORD MagicNumber;
} D3DDEVINFO_VCACHE;
typedef struct D3DRESOURCESTATS {
@@ -1546,6 +1517,7 @@ typedef struct _D3DVOLUME_DESC {
UINT Depth;
} D3DVOLUME_DESC;
/* Parts added with d3d9ex */
#if !defined(D3D_DISABLE_9EX)
typedef enum D3DSCANLINEORDERING
{
@@ -1611,9 +1583,4 @@ typedef enum _D3DSHADER_COMPARISON
D3DSPC_RESERVED1,
} D3DSHADER_COMPARISON;
#pragma pack(pop)
#endif /* DIRECT3D_VERSION >= 0x0900 */
#endif /* __WINE_D3D9TYPES_H */
+491 -1
View File
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2005 Peter Berg Larsen
* Copyright (C) 2010 Christian Costa
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -20,8 +21,14 @@
#define __D3DRM_H__
#include <ddraw.h>
/* #include <d3drmobj.h> */
typedef struct IDirect3DRM *LPDIRECT3DRM, **LPLPDIRECT3DRM;
#include <d3drmobj.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Direct3DRM Object CLSID */
DEFINE_GUID(CLSID_CDirect3DRM, 0x4516ec41, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
@@ -31,4 +38,487 @@ DEFINE_GUID(IID_IDirect3DRM, 0x2bc49361, 0x8327, 0x11cf, 0xac, 0x
DEFINE_GUID(IID_IDirect3DRM2, 0x4516ecc8, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
DEFINE_GUID(IID_IDirect3DRM3, 0x4516ec83, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
typedef struct IDirect3DRM2 *LPDIRECT3DRM2, **LPLPDIRECT3DRM2;
typedef struct IDirect3DRM3 *LPDIRECT3DRM3, **LPLPDIRECT3DRM3;
HRESULT WINAPI Direct3DRMCreate(struct IDirect3DRM **d3drm);
/*****************************************************************************
* IDirect3DRMObject interface
*/
#ifdef WINE_NO_UNICODE_MACROS
#undef GetClassName
#endif
#define INTERFACE IDirect3DRM
DECLARE_INTERFACE_(IDirect3DRM,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirect3DRM methods ***/
STDMETHOD(CreateObject)(THIS_ REFCLSID clsid, IUnknown *outer, REFIID iid, void **out) PURE;
STDMETHOD(CreateFrame)(THIS_ IDirect3DRMFrame *parent, IDirect3DRMFrame **frame) PURE;
STDMETHOD(CreateMesh)(THIS_ IDirect3DRMMesh **mesh) PURE;
STDMETHOD(CreateMeshBuilder)(THIS_ IDirect3DRMMeshBuilder **mesh_builder) PURE;
STDMETHOD(CreateFace)(THIS_ IDirect3DRMFace **face) PURE;
STDMETHOD(CreateAnimation)(THIS_ IDirect3DRMAnimation **animation) PURE;
STDMETHOD(CreateAnimationSet)(THIS_ IDirect3DRMAnimationSet **set) PURE;
STDMETHOD(CreateTexture)(THIS_ D3DRMIMAGE *image, IDirect3DRMTexture **texture) PURE;
STDMETHOD(CreateLight)(THIS_ D3DRMLIGHTTYPE type, D3DCOLOR color, IDirect3DRMLight **light) PURE;
STDMETHOD(CreateLightRGB)(THIS_ D3DRMLIGHTTYPE type, D3DVALUE r, D3DVALUE g, D3DVALUE b,
IDirect3DRMLight **light) PURE;
STDMETHOD(CreateMaterial)(THIS_ D3DVALUE power, IDirect3DRMMaterial **material) PURE;
STDMETHOD(CreateDevice)(THIS_ DWORD width, DWORD height, IDirect3DRMDevice **device) PURE;
STDMETHOD(CreateDeviceFromSurface)(THIS_ GUID *guid, IDirectDraw *ddraw,
IDirectDrawSurface *surface, IDirect3DRMDevice **device) PURE;
STDMETHOD(CreateDeviceFromD3D)(THIS_ IDirect3D *d3d, IDirect3DDevice *d3d_device,
IDirect3DRMDevice **device) PURE;
STDMETHOD(CreateDeviceFromClipper)(THIS_ IDirectDrawClipper *clipper, GUID *guid,
int width, int height, IDirect3DRMDevice **device) PURE;
STDMETHOD(CreateTextureFromSurface)(THIS_ IDirectDrawSurface *surface,
IDirect3DRMTexture **texture) PURE;
STDMETHOD(CreateShadow)(THIS_ IDirect3DRMVisual *visual, IDirect3DRMLight *light,
D3DVALUE px, D3DVALUE py, D3DVALUE pz, D3DVALUE nx, D3DVALUE ny, D3DVALUE nz,
IDirect3DRMVisual **shadow) PURE;
STDMETHOD(CreateViewport)(THIS_ IDirect3DRMDevice *device, IDirect3DRMFrame *camera,
DWORD x, DWORD y, DWORD width, DWORD height, IDirect3DRMViewport **viewport) PURE;
STDMETHOD(CreateWrap)(THIS_ D3DRMWRAPTYPE type, IDirect3DRMFrame *reference, D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz, D3DVALUE ou, D3DVALUE ov,
D3DVALUE su, D3DVALUE sv, IDirect3DRMWrap **wrap) PURE;
STDMETHOD(CreateUserVisual)(THIS_ D3DRMUSERVISUALCALLBACK cb, void *ctx, IDirect3DRMUserVisual **visual) PURE;
STDMETHOD(LoadTexture)(THIS_ const char *filename, IDirect3DRMTexture **texture) PURE;
STDMETHOD(LoadTextureFromResource)(THIS_ HRSRC resource, IDirect3DRMTexture **texture) PURE;
STDMETHOD(SetSearchPath)(THIS_ const char *path) PURE;
STDMETHOD(AddSearchPath)(THIS_ const char *path) PURE;
STDMETHOD(GetSearchPath)(THIS_ DWORD *size, char *path) PURE;
STDMETHOD(SetDefaultTextureColors)(THIS_ DWORD) PURE;
STDMETHOD(SetDefaultTextureShades)(THIS_ DWORD) PURE;
STDMETHOD(GetDevices)(THIS_ IDirect3DRMDeviceArray **array) PURE;
STDMETHOD(GetNamedObject)(THIS_ const char *name, IDirect3DRMObject **object) PURE;
STDMETHOD(EnumerateObjects)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
STDMETHOD(Load)(THIS_ void *source, void *object_id, IID **iids, DWORD iid_count, D3DRMLOADOPTIONS flags,
D3DRMLOADCALLBACK load_cb, void *load_ctx, D3DRMLOADTEXTURECALLBACK load_tex_cb, void *load_tex_ctx,
IDirect3DRMFrame *parent_frame) PURE;
STDMETHOD(Tick)(THIS_ D3DVALUE) PURE;
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IDirect3DRM_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IDirect3DRM_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IDirect3DRM_Release(p) (p)->lpVtbl->Release(p)
/*** IDirect3DRM methods ***/
#define IDirect3DRM_CreateObject(p,a,b,c,d) (p)->lpVtbl->CreateObject(p,a,b,d)
#define IDirect3DRM_CreateFrame(p,a,b) (p)->lpVtbl->CreateFrame(p,a,b)
#define IDirect3DRM_CreateMesh(p,a) (p)->lpVtbl->CreateMesh(p,a)
#define IDirect3DRM_CreateMeshBuilder(p,a) (p)->lpVtbl->CreateMeshBuilder(p,a)
#define IDirect3DRM_CreateFace(p,a) (p)->lpVtbl->CreateFace(p,a)
#define IDirect3DRM_CreateAnimation(p,a) (p)->lpVtbl->CreateAnimation(p,a)
#define IDirect3DRM_CreateAnimationSet(p,a) (p)->lpVtbl->CreateAnimationSet(p,a)
#define IDirect3DRM_CreateTexture(p,a,b) (p)->lpVtbl->CreateTexture(p,a,b)
#define IDirect3DRM_CreateLight(p,a,b,c) (p)->lpVtbl->CreateLight(p,a,b,c)
#define IDirect3DRM_CreateLightRGB(p,a,b,c,d,e) (p)->lpVtbl->CreateLightRGB(p,a,b,c,d,e)
#define IDirect3DRM_CreateMaterial(p,a,b) (p)->lpVtbl->CreateMaterial(p,a,b)
#define IDirect3DRM_CreateDevice(p,a,b,c) (p)->lpVtbl->CreateDevice(p,a,b,c)
#define IDirect3DRM_CreateDeviceFromSurface(p,a,b,c,d) (p)->lpVtbl->CreateDeviceFromSurface(p,a,b,c,d)
#define IDirect3DRM_CreateDeviceFromD3D(p,a,b,c) (p)->lpVtbl->CreateDeviceFromD3D(p,a,b,c)
#define IDirect3DRM_CreateDeviceFromClipper(p,a,b,c,d,e) (p)->lpVtbl->CreateDeviceFromClipper(p,a,b,c,d,e)
#define IDirect3DRM_CreateTextureFromSurface(p,a,b) (p)->lpVtbl->CreateTextureFromSurface(p,a,b)
#define IDirect3DRM_CreateShadow(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->CreateShadow(p,a,b,c,d,e,f,g,h,i)
#define IDirect3DRM_CreateViewport(p,a,b,c,d,e,f,g) (p)->lpVtbl->CreateViewport(p,a,b,c,d,e,f,g)
#define IDirect3DRM_CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q) (p)->lpVtbl->CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q)
#define IDirect3DRM_CreateUserVisual(p,a,b,c) (p)->lpVtbl->CreateUserVisual(p,a,b,c)
#define IDirect3DRM_LoadTexture(p,a,b) (p)->lpVtbl->LoadTexture(p,a,b)
#define IDirect3DRM_LoadTextureFromResource(p,a,b) (p)->lpVtbl->LoadTextureFromResource(p,a,b)
#define IDirect3DRM_SetSearchPath(p,a) (p)->lpVtbl->SetSearchPath(p,a)
#define IDirect3DRM_AddSearchPath(p,a) (p)->lpVtbl->AddSearchPath(p,a)
#define IDirect3DRM_GetSearchPath(p,a,b) (p)->lpVtbl->GetSearchPath(p,a,b)
#define IDirect3DRM_SetDefaultTextureColors(p,a) (p)->lpVtbl->SetDefaultTextureColors(p,a)
#define IDirect3DRM_SetDefaultTextureShades(p,a) (p)->lpVtbl->SetDefaultTextureShades(p,a)
#define IDirect3DRM_GetDevices(p,a) (p)->lpVtbl->GetDevices(p,a)
#define IDirect3DRM_GetNamedObject(p,a,b) (p)->lpVtbl->GetNamedObject(p,a,b)
#define IDirect3DRM_EnumerateObjects(p,a,b) (p)->lpVtbl->EnumerateObjects(p,a,b)
#define IDirect3DRM_Load(p,a,b,c,d,e,f,g,h,i,j) (p)->lpVtbl->Load(p,a,b,c,d,e,f,g,h,i,j)
#define IDirect3DRM_Tick(p,a) (p)->lpVtbl->Tick(p,a)
#else
/*** IUnknown methods ***/
#define IDirect3DRM_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
#define IDirect3DRM_AddRef(p) (p)->AddRef()
#define IDirect3DRM_Release(p) (p)->Release()
/*** IDirect3DRM methods ***/
#define IDirect3DRM_CreateObject(p,a,b,c,d) (p)->CreateObject(a,b,d)
#define IDirect3DRM_CreateFrame(p,a,b) (p)->CreateFrame(a,b)
#define IDirect3DRM_CreateMesh(p,a) (p)->CreateMesh(a)
#define IDirect3DRM_CreateMeshBuilder(p,a) (p)->CreateMeshBuilder(a)
#define IDirect3DRM_CreateFace(p,a) (p)->CreateFace(a)
#define IDirect3DRM_CreateAnimation(p,a) (p)->CreateAnimation(a)
#define IDirect3DRM_CreateAnimationSet(p,a) (p)->CreateAnimationSet(a)
#define IDirect3DRM_CreateTexture(p,a,b) (p)->CreateTexture(a,b)
#define IDirect3DRM_CreateLight(p,a,b,c) (p)->CreateLight(a,b,c)
#define IDirect3DRM_CreateLightRGB(p,a,b,c,d,e) (p)->CreateLightRGB(a,b,c,d,e)
#define IDirect3DRM_CreateMaterial(p,a,b) (p)->CreateMaterial(a,b)
#define IDirect3DRM_CreateDevice(p,a,b,c) (p)->CreateDevice(a,b,c)
#define IDirect3DRM_CreateDeviceFromSurface(p,a,b,c,d) (p)->CreateDeviceFromSurface(a,b,c,d)
#define IDirect3DRM_CreateDeviceFromD3D(p,a,b,c) (p)->CreateDeviceFromD3D(a,b,c)
#define IDirect3DRM_CreateDeviceFromClipper(p,a,b,c,d,e) (p)->CreateDeviceFromClipper(a,b,c,d,e)
#define IDirect3DRM_CreateTextureFromSurface(p,a,b) (p)->CreateTextureFromSurface(a,b)
#define IDirect3DRM_CreateShadow(p,a,b,c,d,e,f,g,h,i) (p)->CreateShadow(a,b,c,d,e,f,g,h,i)
#define IDirect3DRM_CreateViewport(p,a,b,c,d,e,f,g) (p)->CreateViewport(a,b,c,d,e,f,g)
#define IDirect3DRM_CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q) (p)->CreateWrap(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q)
#define IDirect3DRM_CreateUserVisual(p,a,b,c) (p)->CreateUserVisual(a,b,c)
#define IDirect3DRM_LoadTexture(p,a,b) (p)->LoadTexture(a,b)
#define IDirect3DRM_LoadTextureFromResource(p,a,b) (p)->LoadTextureFromResource(a,b)
#define IDirect3DRM_SetSearchPath(p,a) (p)->SetSearchPath(a)
#define IDirect3DRM_AddSearchPath(p,a) (p)->AddSearchPath(a)
#define IDirect3DRM_GetSearchPath(p,a,b) (p)->GetSearchPath(a,b)
#define IDirect3DRM_SetDefaultTextureColors(p,a) (p)->SetDefaultTextureColors(a)
#define IDirect3DRM_SetDefaultTextureShades(p,a) (p)->SetDefaultTextureShades(a)
#define IDirect3DRM_GetDevices(p,a) (p)->GetDevices(a)
#define IDirect3DRM_GetNamedObject(p,a,b) (p)->GetNamedObject(a,b)
#define IDirect3DRM_EnumerateObjects(p,a,b) (p)->EnumerateObjects(a,b)
#define IDirect3DRM_Load(p,a,b,c,d,e,f,g,h,i,j) (p)->Load(a,b,c,d,e,f,g,h,i,j)
#define IDirect3DRM_Tick(p,a) (p)->Tick(a)
#endif
/*****************************************************************************
* IDirect3DRM2 interface
*/
#ifdef WINE_NO_UNICODE_MACROS
#undef GetClassName
#endif
#define INTERFACE IDirect3DRM2
DECLARE_INTERFACE_(IDirect3DRM2,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirect3DRM2 methods ***/
STDMETHOD(CreateObject)(THIS_ REFCLSID clsid, IUnknown *outer, REFIID iid, void **out) PURE;
STDMETHOD(CreateFrame)(THIS_ IDirect3DRMFrame *parent, IDirect3DRMFrame2 **frame) PURE;
STDMETHOD(CreateMesh)(THIS_ IDirect3DRMMesh **mesh) PURE;
STDMETHOD(CreateMeshBuilder)(THIS_ IDirect3DRMMeshBuilder2 **mesh_builder) PURE;
STDMETHOD(CreateFace)(THIS_ IDirect3DRMFace **face) PURE;
STDMETHOD(CreateAnimation)(THIS_ IDirect3DRMAnimation **animation) PURE;
STDMETHOD(CreateAnimationSet)(THIS_ IDirect3DRMAnimationSet **set) PURE;
STDMETHOD(CreateTexture)(THIS_ D3DRMIMAGE *image, IDirect3DRMTexture2 **texture) PURE;
STDMETHOD(CreateLight)(THIS_ D3DRMLIGHTTYPE type, D3DCOLOR color, IDirect3DRMLight **light) PURE;
STDMETHOD(CreateLightRGB)(THIS_ D3DRMLIGHTTYPE type, D3DVALUE r, D3DVALUE g, D3DVALUE b,
IDirect3DRMLight **light) PURE;
STDMETHOD(CreateMaterial)(THIS_ D3DVALUE power, IDirect3DRMMaterial **material) PURE;
STDMETHOD(CreateDevice)(THIS_ DWORD width, DWORD height, IDirect3DRMDevice2 **device) PURE;
STDMETHOD(CreateDeviceFromSurface)(THIS_ GUID *guid, IDirectDraw *ddraw,
IDirectDrawSurface *surface, IDirect3DRMDevice2 **device) PURE;
STDMETHOD(CreateDeviceFromD3D)(THIS_ IDirect3D2 *d3d, IDirect3DDevice2 *d3d_device,
IDirect3DRMDevice2 **device) PURE;
STDMETHOD(CreateDeviceFromClipper)(THIS_ IDirectDrawClipper *clipper, GUID *guid,
int width, int height, IDirect3DRMDevice2 **device) PURE;
STDMETHOD(CreateTextureFromSurface)(THIS_ IDirectDrawSurface *surface,
IDirect3DRMTexture2 **texture) PURE;
STDMETHOD(CreateShadow)(THIS_ IDirect3DRMVisual *visual, IDirect3DRMLight *light,
D3DVALUE px, D3DVALUE py, D3DVALUE pz, D3DVALUE nx, D3DVALUE ny, D3DVALUE nz,
IDirect3DRMVisual **shadow) PURE;
STDMETHOD(CreateViewport)(THIS_ IDirect3DRMDevice *device, IDirect3DRMFrame *camera,
DWORD x, DWORD y, DWORD width, DWORD height, IDirect3DRMViewport **viewport) PURE;
STDMETHOD(CreateWrap)(THIS_ D3DRMWRAPTYPE type, IDirect3DRMFrame *reference, D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz, D3DVALUE ou, D3DVALUE ov,
D3DVALUE su, D3DVALUE sv, IDirect3DRMWrap **wrap) PURE;
STDMETHOD(CreateUserVisual)(THIS_ D3DRMUSERVISUALCALLBACK cb, void *ctx, IDirect3DRMUserVisual **visual) PURE;
STDMETHOD(LoadTexture)(THIS_ const char *filename, IDirect3DRMTexture2 **texture) PURE;
STDMETHOD(LoadTextureFromResource)(THIS_ HMODULE module, const char *resource_name,
const char *resource_type, IDirect3DRMTexture2 **texture) PURE;
STDMETHOD(SetSearchPath)(THIS_ const char *path) PURE;
STDMETHOD(AddSearchPath)(THIS_ const char *path) PURE;
STDMETHOD(GetSearchPath)(THIS_ DWORD *size, char *path) PURE;
STDMETHOD(SetDefaultTextureColors)(THIS_ DWORD) PURE;
STDMETHOD(SetDefaultTextureShades)(THIS_ DWORD) PURE;
STDMETHOD(GetDevices)(THIS_ IDirect3DRMDeviceArray **array) PURE;
STDMETHOD(GetNamedObject)(THIS_ const char *name, IDirect3DRMObject **object) PURE;
STDMETHOD(EnumerateObjects)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
STDMETHOD(Load)(THIS_ void *source, void *object_id, IID **iids, DWORD iid_count, D3DRMLOADOPTIONS flags,
D3DRMLOADCALLBACK load_cb, void *load_ctx, D3DRMLOADTEXTURECALLBACK load_tex_cb, void *load_tex_ctx,
IDirect3DRMFrame *parent_frame) PURE;
STDMETHOD(Tick)(THIS_ D3DVALUE) PURE;
STDMETHOD(CreateProgressiveMesh)(THIS_ IDirect3DRMProgressiveMesh **mesh) PURE;
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IDirect3DRM2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IDirect3DRM2_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IDirect3DRM2_Release(p) (p)->lpVtbl->Release(p)
/*** IDirect3DRM2 methods ***/
#define IDirect3DRM2_CreateObject(p,a,b,c,d) (p)->lpVtbl->CreateObject(p,a,b,d)
#define IDirect3DRM2_CreateFrame(p,a,b) (p)->lpVtbl->CreateFrame(p,a,b)
#define IDirect3DRM2_CreateMesh(p,a) (p)->lpVtbl->CreateMesh(p,a)
#define IDirect3DRM2_CreateMeshBuilder(p,a) (p)->lpVtbl->CreateMeshBuilder(p,a)
#define IDirect3DRM2_CreateFace(p,a) (p)->lpVtbl->CreateFace(p,a)
#define IDirect3DRM2_CreateAnimation(p,a) (p)->lpVtbl->CreateAnimation(p,a)
#define IDirect3DRM2_CreateAnimationSet(p,a) (p)->lpVtbl->CreateAnimationSet(p,a)
#define IDirect3DRM2_CreateTexture(p,a,b) (p)->lpVtbl->CreateTexture(p,a,b)
#define IDirect3DRM2_CreateLight(p,a,b,c) (p)->lpVtbl->CreateLight(p,a,b,c)
#define IDirect3DRM2_CreateLightRGB(p,a,b,c,d,e) (p)->lpVtbl->CreateLightRGB(p,a,b,c,d,e)
#define IDirect3DRM2_CreateMaterial(p,a,b) (p)->lpVtbl->CreateMaterial(p,a,b)
#define IDirect3DRM2_CreateDevice(p,a,b,c) (p)->lpVtbl->CreateDevice(p,a,b,c)
#define IDirect3DRM2_CreateDeviceFromSurface(p,a,b,c,d) (p)->lpVtbl->CreateDeviceFromSurface(p,a,b,c,d)
#define IDirect3DRM2_CreateDeviceFromD3D(p,a,b,c) (p)->lpVtbl->CreateDeviceFromD3D(p,a,b,c)
#define IDirect3DRM2_CreateDeviceFromClipper(p,a,b,c,d,e) (p)->lpVtbl->CreateDeviceFromClipper(p,a,b,c,d,e)
#define IDirect3DRM2_CreateTextureFromSurface(p,a,b) (p)->lpVtbl->CreateTextureFromSurface(p,a,b)
#define IDirect3DRM2_CreateShadow(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->CreateShadow(p,a,b,c,d,e,f,g,h,i)
#define IDirect3DRM2_CreateViewport(p,a,b,c,d,e,f,g) (p)->lpVtbl->CreateViewport(p,a,b,c,d,e,f,g)
#define IDirect3DRM2_CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q) (p)->lpVtbl->CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q)
#define IDirect3DRM2_CreateUserVisual(p,a,b,c) (p)->lpVtbl->CreateUserVisual(p,a,b,c)
#define IDirect3DRM2_LoadTexture(p,a,b) (p)->lpVtbl->LoadTexture(p,a,b)
#define IDirect3DRM2_LoadTextureFromResource(p,a,b,c,d) (p)->lpVtbl->LoadTextureFromResource(p,a,b,c,d)
#define IDirect3DRM2_SetSearchPath(p,a) (p)->lpVtbl->SetSearchPath(p,a)
#define IDirect3DRM2_AddSearchPath(p,a) (p)->lpVtbl->AddSearchPath(p,a)
#define IDirect3DRM2_GetSearchPath(p,a,b) (p)->lpVtbl->GetSearchPath(p,a,b)
#define IDirect3DRM2_SetDefaultTextureColors(p,a) (p)->lpVtbl->SetDefaultTextureColors(p,a)
#define IDirect3DRM2_SetDefaultTextureShades(p,a) (p)->lpVtbl->SetDefaultTextureShades(p,a)
#define IDirect3DRM2_GetDevices(p,a) (p)->lpVtbl->GetDevices(p,a)
#define IDirect3DRM2_GetNamedObject(p,a,b) (p)->lpVtbl->GetNamedObject(p,a,b)
#define IDirect3DRM2_EnumerateObjects(p,a,b) (p)->lpVtbl->EnumerateObjects(p,a,b)
#define IDirect3DRM2_Load(p,a,b,c,d,e,f,g,h,i,j) (p)->lpVtbl->Load(p,a,b,c,d,e,f,g,h,i,j)
#define IDirect3DRM2_Tick(p,a) (p)->lpVtbl->Tick(p,a)
#define IDirect3DRM2_CreateProgressiveMesh(p,a) (p)->lpVtbl->CreateProgressiveMesh(p,a)
#else
/*** IUnknown methods ***/
#define IDirect3DRM2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
#define IDirect3DRM2_AddRef(p) (p)->AddRef()
#define IDirect3DRM2_Release(p) (p)->Release()
/*** IDirect3DRM2 methods ***/
#define IDirect3DRM2_CreateObject(p,a,b,c,d) (p)->CreateObject(a,b,d)
#define IDirect3DRM2_CreateFrame(p,a,b) (p)->CreateFrame(a,b)
#define IDirect3DRM2_CreateMesh(p,a) (p)->CreateMesh(a)
#define IDirect3DRM2_CreateMeshBuilder(p,a) (p)->CreateMeshBuilder(a)
#define IDirect3DRM2_CreateFace(p,a) (p)->CreateFace(a)
#define IDirect3DRM2_CreateAnimation(p,a) (p)->CreateAnimation(a)
#define IDirect3DRM2_CreateAnimationSet(p,a) (p)->CreateAnimationSet(a)
#define IDirect3DRM2_CreateTexture(p,a,b) (p)->CreateTexture(a,b)
#define IDirect3DRM2_CreateLight(p,a,b,c) (p)->CreateLight(a,b,c)
#define IDirect3DRM2_CreateLightRGB(p,a,b,c,d,e) (p)->CreateLightRGB(a,b,c,d,e)
#define IDirect3DRM2_CreateMaterial(p,a,b) (p)->CreateMaterial(a,b)
#define IDirect3DRM2_CreateDevice(p,a,b,c) (p)->CreateDevice(a,b,c)
#define IDirect3DRM2_CreateDeviceFromSurface(p,a,b,c,d) (p)->CreateDeviceFromSurface(a,b,c,d)
#define IDirect3DRM2_CreateDeviceFromD3D(p,a,b,c) (p)->CreateDeviceFromD3D(a,b,c)
#define IDirect3DRM2_CreateDeviceFromClipper(p,a,b,c,d,e) (p)->CreateDeviceFromClipper(a,b,c,d,e)
#define IDirect3DRM2_CreateTextureFromSurface(p,a,b) (p)->CreateTextureFromSurface(a,b)
#define IDirect3DRM2_CreateShadow(p,a,b,c,d,e,f,g,h,i) (p)->CreateShadow(a,b,c,d,e,f,g,h,i)
#define IDirect3DRM2_CreateViewport(p,a,b,c,d,e,f,g) (p)->CreateViewport(a,b,c,d,e,f,g)
#define IDirect3DRM2_CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q) (p)->CreateWrap(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q)
#define IDirect3DRM2_CreateUserVisual(p,a,b,c) (p)->CreateUserVisual(a,b,c)
#define IDirect3DRM2_LoadTexture(p,a,b) (p)->LoadTexture(a,b)
#define IDirect3DRM2_LoadTextureFromResource(p,a,b,c,d) (p)->LoadTextureFromResource(a,b,c,d)
#define IDirect3DRM2_SetSearchPath(p,a) (p)->SetSearchPath(a)
#define IDirect3DRM2_AddSearchPath(p,a) (p)->AddSearchPath(a)
#define IDirect3DRM2_GetSearchPath(p,a,b) (p)->GetSearchPath(a,b)
#define IDirect3DRM2_SetDefaultTextureColors(p,a) (p)->SetDefaultTextureColors(a)
#define IDirect3DRM2_SetDefaultTextureShades(p,a) (p)->SetDefaultTextureShades(a)
#define IDirect3DRM2_GetDevices(p,a) (p)->GetDevices(a)
#define IDirect3DRM2_GetNamedObject(p,a,b) (p)->GetNamedObject(a,b)
#define IDirect3DRM2_EnumerateObjects(p,a,b) (p)->EnumerateObjects(a,b)
#define IDirect3DRM2_Load(p,a,b,c,d,e,f,g,h,i,j) (p)->Load(a,b,c,d,e,f,g,h,i,j)
#define IDirect3DRM2_Tick(p,a) (p)->Tick(a)
#define IDirect3DRM2_CreateProgressiveMesh(p,a) (p)->CreateProgressiveMesh(p,a)
#endif
/*****************************************************************************
* IDirect3DRM3 interface
*/
#ifdef WINE_NO_UNICODE_MACROS
#undef GetClassName
#endif
#define INTERFACE IDirect3DRM3
DECLARE_INTERFACE_(IDirect3DRM3,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirect3DRM2 methods ***/
STDMETHOD(CreateObject)(THIS_ REFCLSID clsid, IUnknown *outer, REFIID iid, void **out) PURE;
STDMETHOD(CreateFrame)(THIS_ IDirect3DRMFrame3 *parent, IDirect3DRMFrame3 **frame) PURE;
STDMETHOD(CreateMesh)(THIS_ IDirect3DRMMesh **mesh) PURE;
STDMETHOD(CreateMeshBuilder)(THIS_ IDirect3DRMMeshBuilder3 **mesh_builder) PURE;
STDMETHOD(CreateFace)(THIS_ IDirect3DRMFace2 **face) PURE;
STDMETHOD(CreateAnimation)(THIS_ IDirect3DRMAnimation2 **animation) PURE;
STDMETHOD(CreateAnimationSet)(THIS_ IDirect3DRMAnimationSet2 **set) PURE;
STDMETHOD(CreateTexture)(THIS_ D3DRMIMAGE *image, IDirect3DRMTexture3 **texture) PURE;
STDMETHOD(CreateLight)(THIS_ D3DRMLIGHTTYPE type, D3DCOLOR color, IDirect3DRMLight **light) PURE;
STDMETHOD(CreateLightRGB)(THIS_ D3DRMLIGHTTYPE type, D3DVALUE r, D3DVALUE g, D3DVALUE b,
IDirect3DRMLight **light) PURE;
STDMETHOD(CreateMaterial)(THIS_ D3DVALUE, IDirect3DRMMaterial2 **material) PURE;
STDMETHOD(CreateDevice)(THIS_ DWORD width, DWORD height, IDirect3DRMDevice3 **device) PURE;
STDMETHOD(CreateDeviceFromSurface)(THIS_ GUID *guid, IDirectDraw *ddraw,
IDirectDrawSurface *surface, IDirect3DRMDevice3 **device) PURE;
STDMETHOD(CreateDeviceFromD3D)(THIS_ IDirect3D2 *d3d, IDirect3DDevice2 *d3d_device,
IDirect3DRMDevice3 **device) PURE;
STDMETHOD(CreateDeviceFromClipper)(THIS_ IDirectDrawClipper *clipper, GUID *guid,
int width, int height, IDirect3DRMDevice3 **device) PURE;
STDMETHOD(CreateTextureFromSurface)(THIS_ IDirectDrawSurface *surface,
IDirect3DRMTexture3 **texture) PURE;
STDMETHOD(CreateShadow)(THIS_ IUnknown *object, IDirect3DRMLight *light, D3DVALUE px, D3DVALUE py, D3DVALUE pz,
D3DVALUE nx, D3DVALUE ny, D3DVALUE nz, IDirect3DRMShadow2 **shadow) PURE;
STDMETHOD(CreateViewport)(THIS_ IDirect3DRMDevice3 *device, IDirect3DRMFrame3 *camera,
DWORD x, DWORD y, DWORD width, DWORD height, IDirect3DRMViewport2 **viewport) PURE;
STDMETHOD(CreateWrap)(THIS_ D3DRMWRAPTYPE type, IDirect3DRMFrame3 *reference,
D3DVALUE ox, D3DVALUE oy, D3DVALUE oz, D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
D3DVALUE ux, D3DVALUE uy, D3DVALUE uz, D3DVALUE ou, D3DVALUE ov, D3DVALUE su, D3DVALUE sv,
IDirect3DRMWrap **wrap) PURE;
STDMETHOD(CreateUserVisual)(THIS_ D3DRMUSERVISUALCALLBACK cb, void *ctx, IDirect3DRMUserVisual **visual) PURE;
STDMETHOD(LoadTexture)(THIS_ const char *filename, IDirect3DRMTexture3 **texture) PURE;
STDMETHOD(LoadTextureFromResource)(THIS_ HMODULE module, const char *resource_name,
const char *resource_type, IDirect3DRMTexture3 **texture) PURE;
STDMETHOD(SetSearchPath)(THIS_ const char *path) PURE;
STDMETHOD(AddSearchPath)(THIS_ const char *path) PURE;
STDMETHOD(GetSearchPath)(THIS_ DWORD *size, char *path) PURE;
STDMETHOD(SetDefaultTextureColors)(THIS_ DWORD) PURE;
STDMETHOD(SetDefaultTextureShades)(THIS_ DWORD) PURE;
STDMETHOD(GetDevices)(THIS_ IDirect3DRMDeviceArray **array) PURE;
STDMETHOD(GetNamedObject)(THIS_ const char *name, IDirect3DRMObject **object) PURE;
STDMETHOD(EnumerateObjects)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
STDMETHOD(Load)(THIS_ void *source, void *object_id, IID **iids, DWORD iid_count, D3DRMLOADOPTIONS flags,
D3DRMLOADCALLBACK load_cb, void *load_ctx, D3DRMLOADTEXTURECALLBACK load_tex_cb, void *load_tex_ctx,
IDirect3DRMFrame3 *parent_frame) PURE;
STDMETHOD(Tick)(THIS_ D3DVALUE) PURE;
STDMETHOD(CreateProgressiveMesh)(THIS_ IDirect3DRMProgressiveMesh **mesh) PURE;
STDMETHOD(RegisterClient)(THIS_ REFGUID guid, DWORD *id) PURE;
STDMETHOD(UnregisterClient)(THIS_ REFGUID rguid) PURE;
STDMETHOD(CreateClippedVisual)(THIS_ IDirect3DRMVisual *visual, IDirect3DRMClippedVisual **clipped_visual) PURE;
STDMETHOD(SetOptions)(THIS_ DWORD) PURE;
STDMETHOD(GetOptions)(THIS_ DWORD *flags) PURE;
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IDirect3DRM3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IDirect3DRM3_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IDirect3DRM3_Release(p) (p)->lpVtbl->Release(p)
/*** IDirect3DRM3 methods ***/
#define IDirect3DRM3_CreateObject(p,a,b,c,d) (p)->lpVtbl->CreateObject(p,a,b,d)
#define IDirect3DRM3_CreateFrame(p,a,b) (p)->lpVtbl->CreateFrame(p,a,b)
#define IDirect3DRM3_CreateMesh(p,a) (p)->lpVtbl->CreateMesh(p,a)
#define IDirect3DRM3_CreateMeshBuilder(p,a) (p)->lpVtbl->CreateMeshBuilder(p,a)
#define IDirect3DRM3_CreateFace(p,a) (p)->lpVtbl->CreateFace(p,a)
#define IDirect3DRM3_CreateAnimation(p,a) (p)->lpVtbl->CreateAnimation(p,a)
#define IDirect3DRM3_CreateAnimationSet(p,a) (p)->lpVtbl->CreateAnimationSet(p,a)
#define IDirect3DRM3_CreateTexture(p,a,b) (p)->lpVtbl->CreateTexture(p,a,b)
#define IDirect3DRM3_CreateLight(p,a,b,c) (p)->lpVtbl->CreateLight(p,a,b,c)
#define IDirect3DRM3_CreateLightRGB(p,a,b,c,d,e) (p)->lpVtbl->CreateLightRGB(p,a,b,c,d,e)
#define IDirect3DRM3_CreateMaterial(p,a,b) (p)->lpVtbl->CreateMaterial(p,a,b)
#define IDirect3DRM3_CreateDevice(p,a,b,c) (p)->lpVtbl->CreateDevice(p,a,b,c)
#define IDirect3DRM3_CreateDeviceFromSurface(p,a,b,c,d) (p)->lpVtbl->CreateDeviceFromSurface(p,a,b,c,d)
#define IDirect3DRM3_CreateDeviceFromD3D(p,a,b,c) (p)->lpVtbl->CreateDeviceFromD3D(p,a,b,c)
#define IDirect3DRM3_CreateDeviceFromClipper(p,a,b,c,d,e) (p)->lpVtbl->CreateDeviceFromClipper(p,a,b,c,d,e)
#define IDirect3DRM3_CreateTextureFromSurface(p,a,b) (p)->lpVtbl->CreateTextureFromSurface(p,a,b)
#define IDirect3DRM3_CreateShadow(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->CreateShadow(p,a,b,c,d,e,f,g,h,i)
#define IDirect3DRM3_CreateViewport(p,a,b,c,d,e,f,g) (p)->lpVtbl->CreateViewport(p,a,b,c,d,e,f,g)
#define IDirect3DRM3_CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q) (p)->lpVtbl->CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q)
#define IDirect3DRM3_CreateUserVisual(p,a,b,c) (p)->lpVtbl->CreateUserVisual(p,a,b,c)
#define IDirect3DRM3_LoadTexture(p,a,b) (p)->lpVtbl->LoadTexture(p,a,b)
#define IDirect3DRM3_LoadTextureFromResource(p,a,b,c,d) (p)->lpVtbl->LoadTextureFromResource(p,a,b,c,d)
#define IDirect3DRM3_SetSearchPath(p,a) (p)->lpVtbl->SetSearchPath(p,a)
#define IDirect3DRM3_AddSearchPath(p,a) (p)->lpVtbl->AddSearchPath(p,a)
#define IDirect3DRM3_GetSearchPath(p,a,b) (p)->lpVtbl->GetSearchPath(p,a,b)
#define IDirect3DRM3_SetDefaultTextureColors(p,a) (p)->lpVtbl->SetDefaultTextureColors(p,a)
#define IDirect3DRM3_SetDefaultTextureShades(p,a) (p)->lpVtbl->SetDefaultTextureShades(p,a)
#define IDirect3DRM3_GetDevices(p,a) (p)->lpVtbl->GetDevices(p,a)
#define IDirect3DRM3_GetNamedObject(p,a,b) (p)->lpVtbl->GetNamedObject(p,a,b)
#define IDirect3DRM3_EnumerateObjects(p,a,b) (p)->lpVtbl->EnumerateObjects(p,a,b)
#define IDirect3DRM3_Load(p,a,b,c,d,e,f,g,h,i,j) (p)->lpVtbl->Load(p,a,b,c,d,e,f,g,h,i,j)
#define IDirect3DRM3_Tick(p,a) (p)->lpVtbl->Tick(p,a)
#define IDirect3DRM3_CreateProgressiveMesh(p,a) (p)->lpVtbl->CreateProgressiveMesh(p,a)
#define IDirect3DRM3_RegisterClient(p,a,b) (p)->lpVtbl->RegisterClient(p,a,b)
#define IDirect3DRM3_UnregisterClient(p,a) (p)->lpVtbl->UnregisterClient(p,a)
#define IDirect3DRM3_CreateClippedVisual(p,ab) (p)->lpVtbl->CreateClippedVisual(p,a,b)
#define IDirect3DRM3_SetOptions(p,a) (p)->lpVtbl->SetOptions(p,a)
#define IDirect3DRM3_GetOptions(p,a) (p)->lpVtbl->GetOptions(p,a)
#else
/*** IUnknown methods ***/
#define IDirect3DRM3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
#define IDirect3DRM3_AddRef(p) (p)->AddRef()
#define IDirect3DRM3_Release(p) (p)->Release()
/*** IDirect3DRM3 methods ***/
#define IDirect3DRM3_CreateObject(p,a,b,c,d) (p)->CreateObject(a,b,d)
#define IDirect3DRM3_CreateFrame(p,a,b) (p)->CreateFrame(a,b)
#define IDirect3DRM3_CreateMesh(p,a) (p)->CreateMesh(a)
#define IDirect3DRM3_CreateMeshBuilder(p,a) (p)->CreateMeshBuilder(a)
#define IDirect3DRM3_CreateFace(p,a) (p)->CreateFace(a)
#define IDirect3DRM3_CreateAnimation(p,a) (p)->CreateAnimation(a)
#define IDirect3DRM3_CreateAnimationSet(p,a) (p)->CreateAnimationSet(a)
#define IDirect3DRM3_CreateTexture(p,a,b) (p)->CreateTexture(a,b)
#define IDirect3DRM3_CreateLight(p,a,b,c) (p)->CreateLight(a,b,c)
#define IDirect3DRM3_CreateLightRGB(p,a,b,c,d,e) (p)->CreateLightRGB(a,b,c,d,e)
#define IDirect3DRM3_CreateMaterial(p,a,b) (p)->CreateMaterial(a,b)
#define IDirect3DRM3_CreateDevice(p,a,b,c) (p)->CreateDevice(a,b,c)
#define IDirect3DRM3_CreateDeviceFromSurface(p,a,b,c,d) (p)->CreateDeviceFromSurface(a,b,c,d)
#define IDirect3DRM3_CreateDeviceFromD3D(p,a,b,c) (p)->CreateDeviceFromD3D(a,b,c)
#define IDirect3DRM3_CreateDeviceFromClipper(p,a,b,c,d,e) (p)->CreateDeviceFromClipper(a,b,c,d,e)
#define IDirect3DRM3_CreateTextureFromSurface(p,a,b) (p)->CreateTextureFromSurface(a,b)
#define IDirect3DRM3_CreateShadow(p,a,b,c,d,e,f,g,h,i) (p)->CreateShadow(a,b,c,d,e,f,g,h,i)
#define IDirect3DRM3_CreateViewport(p,a,b,c,d,e,f,g) (p)->CreateViewport(a,b,c,d,e,f,g)
#define IDirect3DRM3_CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q) (p)->CreateWrap(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q)
#define IDirect3DRM3_CreateUserVisual(p,a,b,c) (p)->CreateUserVisual(a,b,c)
#define IDirect3DRM3_LoadTexture(p,a,b) (p)->LoadTexture(a,b)
#define IDirect3DRM3_LoadTextureFromResource(p,a,b,c,d) (p)->LoadTextureFromResource(a,b,c,d)
#define IDirect3DRM3_SetSearchPath(p,a) (p)->SetSearchPath(a)
#define IDirect3DRM3_AddSearchPath(p,a) (p)->AddSearchPath(a)
#define IDirect3DRM3_GetSearchPath(p,a,b) (p)->GetSearchPath(a,b)
#define IDirect3DRM3_SetDefaultTextureColors(p,a) (p)->SetDefaultTextureColors(a)
#define IDirect3DRM3_SetDefaultTextureShades(p,a) (p)->SetDefaultTextureShades(a)
#define IDirect3DRM3_GetDevices(p,a) (p)->GetDevices(a)
#define IDirect3DRM3_GetNamedObject(p,a,b) (p)->GetNamedObject(a,b)
#define IDirect3DRM3_EnumerateObjects(p,a,b) (p)->EnumerateObjects(a,b)
#define IDirect3DRM3_Load(p,a,b,c,d,e,f,g,h,i,j) (p)->Load(a,b,c,d,e,f,g,h,i,j)
#define IDirect3DRM3_Tick(p,a) (p)->Tick(a)
#define IDirect3DRM3_CreateProgressiveMesh(p,a) (p)->CreateProgressiveMesh(p,a)
#define IDirect3DRM3_RegisterClient(p,a,b) (p)->RegisterClient(p,a,b)
#define IDirect3DRM3_UnregisterClient(p,a) (p)->UnregisterClient(p,a)
#define IDirect3DRM3_CreateClippedVisual(p,ab) (p)->CreateClippedVisual(p,a,b)
#define IDirect3DRM3_SetOptions(p,a) (p)->SetOptions(p,a)
#define IDirect3DRM3_GetOptions(p,a) (p)->GetOptions(p,a)
#endif
#define D3DRM_OK DD_OK
#define D3DRMERR_BADOBJECT MAKE_DDHRESULT(781)
#define D3DRMERR_BADTYPE MAKE_DDHRESULT(782)
#define D3DRMERR_BADALLOC MAKE_DDHRESULT(783)
#define D3DRMERR_FACEUSED MAKE_DDHRESULT(784)
#define D3DRMERR_NOTFOUND MAKE_DDHRESULT(785)
#define D3DRMERR_NOTDONEYET MAKE_DDHRESULT(786)
#define D3DRMERR_FILENOTFOUND MAKE_DDHRESULT(787)
#define D3DRMERR_BADFILE MAKE_DDHRESULT(788)
#define D3DRMERR_BADDEVICE MAKE_DDHRESULT(789)
#define D3DRMERR_BADVALUE MAKE_DDHRESULT(790)
#define D3DRMERR_BADMAJORVERSION MAKE_DDHRESULT(791)
#define D3DRMERR_BADMINORVERSION MAKE_DDHRESULT(792)
#define D3DRMERR_UNABLETOEXECUTE MAKE_DDHRESULT(793)
#define D3DRMERR_LIBRARYNOTFOUND MAKE_DDHRESULT(794)
#define D3DRMERR_INVALIDLIBRARY MAKE_DDHRESULT(795)
#define D3DRMERR_PENDING MAKE_DDHRESULT(796)
#define D3DRMERR_NOTENOUGHDATA MAKE_DDHRESULT(797)
#define D3DRMERR_REQUESTTOOLARGE MAKE_DDHRESULT(798)
#define D3DRMERR_REQUESTTOOSMALL MAKE_DDHRESULT(799)
#define D3DRMERR_CONNECTIONLOST MAKE_DDHRESULT(800)
#define D3DRMERR_LOADABORTED MAKE_DDHRESULT(801)
#define D3DRMERR_NOINTERNET MAKE_DDHRESULT(802)
#define D3DRMERR_BADCACHEFILE MAKE_DDHRESULT(803)
#define D3DRMERR_BOXNOTSET MAKE_DDHRESULT(804)
#define D3DRMERR_BADPMDATA MAKE_DDHRESULT(805)
#define D3DRMERR_CLIENTNOTREGISTERED MAKE_DDHRESULT(806)
#define D3DRMERR_NOTCREATEDFROMDDS MAKE_DDHRESULT(807)
#define D3DRMERR_NOSUCHKEY MAKE_DDHRESULT(808)
#define D3DRMERR_INCOMPATABLEKEY MAKE_DDHRESULT(809)
#define D3DRMERR_ELEMENTINUSE MAKE_DDHRESULT(810)
#define D3DRMERR_TEXTUREFORMATNOTFOUND MAKE_DDHRESULT(811)
#define D3DRMERR_NOTAGGREGATED MAKE_DDHRESULT(812)
#ifdef __cplusplus
}
#endif
#endif /* __D3DRM_H__ */
+415 -17
View File
@@ -1,6 +1,7 @@
/*
* Copyright 2007 Vijay Kiran Kamuju
* Copyright 2007,2010 Vijay Kiran Kamuju
* Copyright 2007 David ADAM
* Copyright 2010 Christian Costa
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -27,32 +28,429 @@
extern "C" {
#endif
typedef D3DVALUE D3DRMMATRIX4D[4][4];
typedef struct _D3DRMQUATERNION
typedef struct _D3DRMVECTOR4D
{
D3DVALUE x;
D3DVALUE y;
D3DVALUE z;
D3DVALUE w;
} D3DRMVECTOR4D, *LPD3DRMVECTOR4D;
typedef D3DVALUE D3DRMMATRIX4D[4][4];
typedef struct _D3DRMQUATERNION {
D3DVALUE s;
D3DVECTOR v;
} D3DRMQUATERNION, *LPD3DRMQUATERNION;
void WINAPI D3DRMMatrixFromQuaternion(D3DRMMATRIX4D, LPD3DRMQUATERNION);
typedef struct _D3DRMRAY {
D3DVECTOR dvDir;
D3DVECTOR dvPos;
} D3DRMRAY, *LPD3DRMRAY;
LPD3DRMQUATERNION WINAPI D3DRMQuaternionFromRotation(LPD3DRMQUATERNION ,LPD3DVECTOR,D3DVALUE);
LPD3DRMQUATERNION WINAPI D3DRMQuaternionMultiply(LPD3DRMQUATERNION, LPD3DRMQUATERNION, LPD3DRMQUATERNION);
LPD3DRMQUATERNION WINAPI D3DRMQuaternionSlerp(LPD3DRMQUATERNION, LPD3DRMQUATERNION, LPD3DRMQUATERNION, D3DVALUE);
typedef struct _D3DRMBOX {
D3DVECTOR min;
D3DVECTOR max;
} D3DRMBOX, *LPD3DRMBOX;
LPD3DVECTOR WINAPI D3DRMVectorAdd(LPD3DVECTOR, LPD3DVECTOR, LPD3DVECTOR);
LPD3DVECTOR WINAPI D3DRMVectorCrossProduct(LPD3DVECTOR, LPD3DVECTOR, LPD3DVECTOR);
D3DVALUE WINAPI D3DRMVectorDotProduct(LPD3DVECTOR, LPD3DVECTOR);
LPD3DVECTOR WINAPI D3DRMVectorNormalize(LPD3DVECTOR);
typedef void (*D3DRMWRAPCALLBACK)(D3DVECTOR *vec, int *u, int *v, D3DVECTOR *a, D3DVECTOR *b, void *ctx);
typedef enum _D3DRMLIGHTTYPE {
D3DRMLIGHT_AMBIENT,
D3DRMLIGHT_POINT,
D3DRMLIGHT_SPOT,
D3DRMLIGHT_DIRECTIONAL,
D3DRMLIGHT_PARALLELPOINT
} D3DRMLIGHTTYPE, *LPD3DRMLIGHTTYPE;
typedef enum _D3DRMSHADEMODE {
D3DRMSHADE_FLAT = 0,
D3DRMSHADE_GOURAUD = 1,
D3DRMSHADE_PHONG = 2,
D3DRMSHADE_MASK = 7,
D3DRMSHADE_MAX = 8
} D3DRMSHADEMODE, *LPD3DRMSHADEMODE;
typedef enum _D3DRMLIGHTMODE {
D3DRMLIGHT_OFF = 0 * D3DRMSHADE_MAX,
D3DRMLIGHT_ON = 1 * D3DRMSHADE_MAX,
D3DRMLIGHT_MASK = 7 * D3DRMSHADE_MAX,
D3DRMLIGHT_MAX = 8 * D3DRMSHADE_MAX
} D3DRMLIGHTMODE, *LPD3DRMLIGHTMODE;
typedef enum _D3DRMFILLMODE {
D3DRMFILL_POINTS = 0 * D3DRMLIGHT_MAX,
D3DRMFILL_WIREFRAME = 1 * D3DRMLIGHT_MAX,
D3DRMFILL_SOLID = 2 * D3DRMLIGHT_MAX,
D3DRMFILL_MASK = 7 * D3DRMLIGHT_MAX,
D3DRMFILL_MAX = 8 * D3DRMLIGHT_MAX
} D3DRMFILLMODE, *LPD3DRMFILLMODE;
typedef DWORD D3DRMRENDERQUALITY, *LPD3DRMRENDERQUALITY;
#define D3DRMRENDER_WIREFRAME (D3DRMSHADE_FLAT+D3DRMLIGHT_OFF+D3DRMFILL_WIREFRAME)
#define D3DRMRENDER_UNLITFLAT (D3DRMSHADE_FLAT+D3DRMLIGHT_OFF+D3DRMFILL_SOLID)
#define D3DRMRENDER_FLAT (D3DRMSHADE_FLAT+D3DRMLIGHT_ON+D3DRMFILL_SOLID)
#define D3DRMRENDER_GOURAUD (D3DRMSHADE_GOURAUD+D3DRMLIGHT_ON+D3DRMFILL_SOLID)
#define D3DRMRENDER_PHONG (D3DRMSHADE_PHONG+D3DRMLIGHT_ON+D3DRMFILL_SOLID
#define D3DRMRENDERMODE_BLENDEDTRANSPARENCY 1
#define D3DRMRENDERMODE_SORTEDTRANSPARENCY 2
#define D3DRMRENDERMODE_LIGHTINMODELSPACE 8
#define D3DRMRENDERMODE_VIEWDEPENDENTSPECULAR 16
#define D3DRMRENDERMODE_DISABLESORTEDALPHAZWRITE 32
typedef enum _D3DRMTEXTUREQUALITY {
D3DRMTEXTURE_NEAREST,
D3DRMTEXTURE_LINEAR,
D3DRMTEXTURE_MIPNEAREST,
D3DRMTEXTURE_MIPLINEAR,
D3DRMTEXTURE_LINEARMIPNEAREST,
D3DRMTEXTURE_LINEARMIPLINEAR
} D3DRMTEXTUREQUALITY, *LPD3DRMTEXTUREQUALITY;
#define D3DRMTEXTURE_FORCERESIDENT 0x00000001
#define D3DRMTEXTURE_STATIC 0x00000002
#define D3DRMTEXTURE_DOWNSAMPLEPOINT 0x00000004
#define D3DRMTEXTURE_DOWNSAMPLEBILINEAR 0x00000008
#define D3DRMTEXTURE_DOWNSAMPLEREDUCEDEPTH 0x00000010
#define D3DRMTEXTURE_DOWNSAMPLENONE 0x00000020
#define D3DRMTEXTURE_CHANGEDPIXELS 0x00000040
#define D3DRMTEXTURE_CHANGEDPALETTE 0x00000080
#define D3DRMTEXTURE_INVALIDATEONLY 0x00000100
#define D3DRMSHADOW_TRUEALPHA 0x00000001
typedef enum _D3DRMCOMBINETYPE {
D3DRMCOMBINE_REPLACE,
D3DRMCOMBINE_BEFORE,
D3DRMCOMBINE_AFTER
} D3DRMCOMBINETYPE, *LPD3DRMCOMBINETYPE;
typedef D3DCOLORMODEL D3DRMCOLORMODEL, *LPD3DRMCOLORMODEL;
typedef enum _D3DRMPALETTEFLAGS
{
D3DRMPALETTE_FREE,
D3DRMPALETTE_READONLY,
D3DRMPALETTE_RESERVED
} D3DRMPALETTEFLAGS, *LPD3DRMPALETTEFLAGS;
typedef struct _D3DRMPALETTEENTRY {
unsigned char red;
unsigned char green;
unsigned char blue;
unsigned char flags;
} D3DRMPALETTEENTRY, *LPD3DRMPALETTEENTRY;
typedef struct _D3DRMIMAGE {
int width;
int height;
int aspectx;
int aspecty;
int depth;
int rgb;
int bytes_per_line;
void* buffer1;
void* buffer2;
ULONG red_mask;
ULONG green_mask;
ULONG blue_mask;
ULONG alpha_mask;
int palette_size;
D3DRMPALETTEENTRY* palette;
} D3DRMIMAGE, *LPD3DRMIMAGE;
typedef enum _D3DRMWRAPTYPE {
D3DRMWRAP_FLAT,
D3DRMWRAP_CYLINDER,
D3DRMWRAP_SPHERE,
D3DRMWRAP_CHROME,
D3DRMWRAP_SHEET,
D3DRMWRAP_BOX
} D3DRMWRAPTYPE, *LPD3DRMWRAPTYPE;
#define D3DRMWIREFRAME_CULL 1
#define D3DRMWIREFRAME_HIDDENLINE 2
typedef enum _D3DRMPROJECTIONTYPE
{
D3DRMPROJECT_PERSPECTIVE,
D3DRMPROJECT_ORTHOGRAPHIC,
D3DRMPROJECT_RIGHTHANDPERSPECTIVE,
D3DRMPROJECT_RIGHTHANDORTHOGRAPHIC
} D3DRMPROJECTIONTYPE, *LPD3DRMPROJECTIONTYPE;
#define D3DRMOPTIONS_LEFTHANDED 0x00000001
#define D3DRMOPTIONS_RIGHTHANDED 0x00000002
typedef enum _D3DRMXOFFORMAT {
D3DRMXOF_BINARY,
D3DRMXOF_COMPRESSED,
D3DRMXOF_TEXT
} D3DRMXOFFORMAT, *LPD3DRMXOFFORMAT;
typedef DWORD D3DRMSAVEOPTIONS;
#define D3DRMXOFSAVE_NORMALS 1
#define D3DRMXOFSAVE_TEXTURECOORDINATES 2
#define D3DRMXOFSAVE_MATERIALS 4
#define D3DRMXOFSAVE_TEXTURENAMES 8
#define D3DRMXOFSAVE_ALL 15
#define D3DRMXOFSAVE_TEMPLATES 16
#define D3DRMXOFSAVE_TEXTURETOPOLOGY 32
typedef enum _D3DRMCOLORSOURCE {
D3DRMCOLOR_FROMFACE,
D3DRMCOLOR_FROMVERTEX
} D3DRMCOLORSOURCE, *LPD3DRMCOLORSOURCE;
typedef enum _D3DRMFRAMECONSTRAINT {
D3DRMCONSTRAIN_Z,
D3DRMCONSTRAIN_Y,
D3DRMCONSTRAIN_X
} D3DRMFRAMECONSTRAINT, *LPD3DRMFRAMECONSTRAINT;
typedef enum _D3DRMMATERIALMODE {
D3DRMMATERIAL_FROMMESH,
D3DRMMATERIAL_FROMPARENT,
D3DRMMATERIAL_FROMFRAME
} D3DRMMATERIALMODE, *LPD3DRMMATERIALMODE;
typedef enum _D3DRMFOGMODE {
D3DRMFOG_LINEAR,
D3DRMFOG_EXPONENTIAL,
D3DRMFOG_EXPONENTIALSQUARED
} D3DRMFOGMODE, *LPD3DRMFOGMODE;
typedef enum _D3DRMZBUFFERMODE {
D3DRMZBUFFER_FROMPARENT,
D3DRMZBUFFER_ENABLE,
D3DRMZBUFFER_DISABLE
} D3DRMZBUFFERMODE, *LPD3DRMZBUFFERMODE;
typedef enum _D3DRMSORTMODE {
D3DRMSORT_FROMPARENT,
D3DRMSORT_NONE,
D3DRMSORT_FRONTTOBACK,
D3DRMSORT_BACKTOFRONT
} D3DRMSORTMODE, *LPD3DRMSORTMODE;
typedef struct _D3DRMMATERIALOVERRIDE {
DWORD dwSize;
DWORD dwFlags;
D3DCOLORVALUE dcDiffuse;
D3DCOLORVALUE dcAmbient;
D3DCOLORVALUE dcEmissive;
D3DCOLORVALUE dcSpecular;
D3DVALUE dvPower;
IUnknown *lpD3DRMTex;
} D3DRMMATERIALOVERRIDE, *LPD3DRMMATERIALOVERRIDE;
#define D3DRMMATERIALOVERRIDE_DIFFUSE_ALPHAONLY 0x00000001
#define D3DRMMATERIALOVERRIDE_DIFFUSE_RGBONLY 0x00000002
#define D3DRMMATERIALOVERRIDE_DIFFUSE 0x00000003
#define D3DRMMATERIALOVERRIDE_AMBIENT 0x00000004
#define D3DRMMATERIALOVERRIDE_EMISSIVE 0x00000008
#define D3DRMMATERIALOVERRIDE_SPECULAR 0x00000010
#define D3DRMMATERIALOVERRIDE_POWER 0x00000020
#define D3DRMMATERIALOVERRIDE_TEXTURE 0x00000040
#define D3DRMMATERIALOVERRIDE_DIFFUSE_ALPHAMULTIPLY 0x00000080
#define D3DRMMATERIALOVERRIDE_ALL 0x000000FF
#define D3DRMFPTF_ALPHA 0x00000001
#define D3DRMFPTF_NOALPHA 0x00000002
#define D3DRMFPTF_PALETTIZED 0x00000004
#define D3DRMFPTF_NOTPALETTIZED 0x00000008
#define D3DRMSTATECHANGE_UPDATEONLY 0x000000001
#define D3DRMSTATECHANGE_VOLATILE 0x000000002
#define D3DRMSTATECHANGE_NONVOLATILE 0x000000004
#define D3DRMSTATECHANGE_RENDER 0x000000020
#define D3DRMSTATECHANGE_LIGHT 0x000000040
#define D3DRMDEVICE_NOZBUFFER 0x00000001
#define D3DRMCALLBACK_PREORDER 0
#define D3DRMCALLBACK_POSTORDER 1
#define D3DRMRAYPICK_ONLYBOUNDINGBOXES 0x01
#define D3DRMRAYPICK_IGNOREFURTHERPRIMITIVES 0x02
#define D3DRMRAYPICK_INTERPOLATEUV 0x04
#define D3DRMRAYPICK_INTERPOLATECOLOR 0x08
#define D3DRMRAYPICK_INTERPOLATENORMAL 0x10
#define D3DRMADDFACES_VERTICESONLY 1
#define D3DRMGENERATENORMALS_PRECOMPACT 1
#define D3DRMGENERATENORMALS_USECREASEANGLE 2
#define D3DRMMESHBUILDER_DIRECTPARENT 1
#define D3DRMMESHBUILDER_ROOTMESH 2
#define D3DRMMESHBUILDER_RENDERENABLE 0x00000001
#define D3DRMMESHBUILDER_PICKENABLE 0x00000002
#define D3DRMADDMESHBUILDER_DONTCOPYAPPDATA 1
#define D3DRMADDMESHBUILDER_FLATTENSUBMESHES 2
#define D3DRMADDMESHBUILDER_NOSUBMESHES 4
#define D3DRMMESHBUILDERAGE_GEOMETRY 0x00000001
#define D3DRMMESHBUILDERAGE_MATERIALS 0x00000002
#define D3DRMMESHBUILDERAGE_TEXTURES 0x00000004
#define D3DRMFVF_TYPE 0x00000001
#define D3DRMFVF_NORMAL 0x00000002
#define D3DRMFVF_COLOR 0x00000004
#define D3DRMFVF_TEXTURECOORDS 0x00000008
#define D3DRMVERTEX_STRIP 0x00000001
#define D3DRMVERTEX_FAN 0x00000002
#define D3DRMVERTEX_LIST 0x00000004
#define D3DRMCLEAR_TARGET 0x00000001
#define D3DRMCLEAR_ZBUFFER 0x00000002
#define D3DRMCLEAR_DIRTYRECTS 0x00000004
#define D3DRMCLEAR_ALL (D3DRMCLEAR_TARGET | D3DRMCLEAR_ZBUFFER | D3DRMCLEAR_DIRTYRECTS)
#define D3DRMFOGMETHOD_VERTEX 0x00000001
#define D3DRMFOGMETHOD_TABLE 0x00000002
#define D3DRMFOGMETHOD_ANY 0x00000004
#define D3DRMFRAME_RENDERENABLE 0x00000001
#define D3DRMFRAME_PICKENABLE 0x00000002
typedef DWORD D3DRMANIMATIONOPTIONS;
#define D3DRMANIMATION_OPEN 0x00000001
#define D3DRMANIMATION_CLOSED 0x00000002
#define D3DRMANIMATION_LINEARPOSITION 0x00000004
#define D3DRMANIMATION_SPLINEPOSITION 0x00000008
#define D3DRMANIMATION_SCALEANDROTATION 0x00000010
#define D3DRMANIMATION_POSITION 0x00000020
typedef DWORD D3DRMINTERPOLATIONOPTIONS;
#define D3DRMINTERPOLATION_OPEN 0x0001
#define D3DRMINTERPOLATION_CLOSED 0x0002
#define D3DRMINTERPOLATION_NEAREST 0x0100
#define D3DRMINTERPOLATION_LINEAR 0x0004
#define D3DRMINTERPOLATION_SPLINE 0x0008
#define D3DRMINTERPOLATION_VERTEXCOLOR 0x0040
#define D3DRMINTERPOLATION_SLERPNORMALS 0x0080
typedef DWORD D3DRMLOADOPTIONS;
#define D3DRMLOAD_FROMFILE 0x000L
#define D3DRMLOAD_FROMRESOURCE 0x001L
#define D3DRMLOAD_FROMMEMORY 0x002L
#define D3DRMLOAD_FROMSTREAM 0x004L
#define D3DRMLOAD_FROMURL 0x008L
#define D3DRMLOAD_BYNAME 0x010L
#define D3DRMLOAD_BYPOSITION 0x020L
#define D3DRMLOAD_BYGUID 0x040L
#define D3DRMLOAD_FIRST 0x080L
#define D3DRMLOAD_INSTANCEBYREFERENCE 0x100L
#define D3DRMLOAD_INSTANCEBYCOPYING 0x200L
#define D3DRMLOAD_ASYNCHRONOUS 0x400L
typedef struct _D3DRMLOADRESOURCE
{
HMODULE hModule;
const char *lpName;
const char *lpType;
} D3DRMLOADRESOURCE, *LPD3DRMLOADRESOURCE;
typedef struct _D3DRMLOADMEMORY
{
void *lpMemory;
DWORD dSize;
} D3DRMLOADMEMORY, *LPD3DRMLOADMEMORY;
#define D3DRMPMESHSTATUS_VALID 0x01
#define D3DRMPMESHSTATUS_INTERRUPTED 0x02
#define D3DRMPMESHSTATUS_BASEMESHCOMPLETE 0x04
#define D3DRMPMESHSTATUS_COMPLETE 0x08
#define D3DRMPMESHSTATUS_RENDERABLE 0x10
#define D3DRMPMESHEVENT_BASEMESH 0x01
#define D3DRMPMESHEVENT_COMPLETE 0x02
typedef struct _D3DRMPMESHLOADSTATUS {
DWORD dwSize;
DWORD dwPMeshSize;
DWORD dwBaseMeshSize;
DWORD dwBytesLoaded;
DWORD dwVerticesLoaded;
DWORD dwFacesLoaded;
HRESULT dwLoadResult;
DWORD dwFlags;
} D3DRMPMESHLOADSTATUS, *LPD3DRMPMESHLOADSTATUS;
typedef enum _D3DRMUSERVISUALREASON {
D3DRMUSERVISUAL_CANSEE,
D3DRMUSERVISUAL_RENDER
} D3DRMUSERVISUALREASON, *LPD3DRMUSERVISUALREASON;
typedef struct _D3DRMANIMATIONKEY
{
DWORD dwSize;
DWORD dwKeyType;
D3DVALUE dvTime;
DWORD dwID;
#if !defined(__cplusplus) || !defined(D3D_OVERLOADS)
union
{
D3DRMQUATERNION dqRotateKey;
D3DVECTOR dvScaleKey;
D3DVECTOR dvPositionKey;
} DUMMYUNIONNAME;
#else
D3DVALUE dvK[4];
#endif
} D3DRMANIMATIONKEY;
typedef D3DRMANIMATIONKEY *LPD3DRMANIMATIONKEY;
#define D3DRMANIMATION_ROTATEKEY 0x01
#define D3DRMANIMATION_SCALEKEY 0x02
#define D3DRMANIMATION_POSITIONKEY 0x03
typedef DWORD D3DRMMAPPING, D3DRMMAPPINGFLAG, *LPD3DRMMAPPING;
static const D3DRMMAPPINGFLAG D3DRMMAP_WRAPU = 1;
static const D3DRMMAPPINGFLAG D3DRMMAP_WRAPV = 2;
static const D3DRMMAPPINGFLAG D3DRMMAP_PERSPCORRECT = 4;
typedef struct _D3DRMVERTEX {
D3DVECTOR position;
D3DVECTOR normal;
D3DVALUE tu;
D3DVALUE tv;
D3DCOLOR color;
} D3DRMVERTEX, *LPD3DRMVERTEX;
typedef LONG D3DRMGROUPINDEX;
static const D3DRMGROUPINDEX D3DRMGROUP_ALLGROUPS = -1;
void WINAPI D3DRMMatrixFromQuaternion(D3DRMMATRIX4D m, D3DRMQUATERNION *q);
D3DRMQUATERNION * WINAPI D3DRMQuaternionFromRotation(D3DRMQUATERNION *x, D3DVECTOR *axis, D3DVALUE theta);
D3DRMQUATERNION * WINAPI D3DRMQuaternionMultiply(D3DRMQUATERNION *ret, D3DRMQUATERNION *x, D3DRMQUATERNION *y);
D3DRMQUATERNION * WINAPI D3DRMQuaternionSlerp(D3DRMQUATERNION *ret,
D3DRMQUATERNION *x, D3DRMQUATERNION *y, D3DVALUE alpha);
D3DVECTOR * WINAPI D3DRMVectorAdd(D3DVECTOR *ret, D3DVECTOR *x, D3DVECTOR *y);
D3DVECTOR * WINAPI D3DRMVectorCrossProduct(D3DVECTOR *ret, D3DVECTOR *x, D3DVECTOR *y);
D3DVALUE WINAPI D3DRMVectorDotProduct(D3DVECTOR *x, D3DVECTOR *y);
D3DVECTOR * WINAPI D3DRMVectorNormalize(D3DVECTOR *x);
#define D3DRMVectorNormalise D3DRMVectorNormalize
D3DVALUE WINAPI D3DRMVectorModulus(LPD3DVECTOR);
LPD3DVECTOR WINAPI D3DRMVectorRandom(LPD3DVECTOR);
LPD3DVECTOR WINAPI D3DRMVectorRotate(LPD3DVECTOR, LPD3DVECTOR, LPD3DVECTOR, D3DVALUE);
LPD3DVECTOR WINAPI D3DRMVectorReflect(LPD3DVECTOR, LPD3DVECTOR, LPD3DVECTOR);
LPD3DVECTOR WINAPI D3DRMVectorScale(LPD3DVECTOR, LPD3DVECTOR, D3DVALUE);
LPD3DVECTOR WINAPI D3DRMVectorSubtract(LPD3DVECTOR, LPD3DVECTOR, LPD3DVECTOR);
D3DVALUE WINAPI D3DRMVectorModulus(D3DVECTOR *x);
D3DVECTOR * WINAPI D3DRMVectorRandom(D3DVECTOR *ret);
D3DVECTOR * WINAPI D3DRMVectorRotate(D3DVECTOR *ret, D3DVECTOR *x, D3DVECTOR *axis, D3DVALUE theta);
D3DVECTOR * WINAPI D3DRMVectorReflect(D3DVECTOR *ret, D3DVECTOR *ray, D3DVECTOR *normal);
D3DVECTOR * WINAPI D3DRMVectorScale(D3DVECTOR *ret, D3DVECTOR *x, D3DVALUE scale);
D3DVECTOR * WINAPI D3DRMVectorSubtract(D3DVECTOR *ret, D3DVECTOR *x, D3DVECTOR *y);
D3DCOLOR WINAPI D3DRMCreateColorRGB(D3DVALUE, D3DVALUE, D3DVALUE);
D3DCOLOR WINAPI D3DRMCreateColorRGBA(D3DVALUE, D3DVALUE, D3DVALUE, D3DVALUE);
File diff suppressed because it is too large Load Diff
+103
View File
@@ -0,0 +1,103 @@
/*
* Copyright (C) 2010 Vijay Kiran Kamuju
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef __D3DRMWIN_H__
#define __D3DRMWIN_H__
#include <d3drm.h>
#include <ddraw.h>
#include <d3d.h>
#ifdef __cplusplus
extern "C" {
#endif
/*****************************************************************************
* Direct3DRMWinDevice interface GUID
*/
DEFINE_GUID(IID_IDirect3DRMWinDevice, 0xc5016cc0, 0xd273, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
typedef struct IDirect3DRMWinDevice *LPDIRECT3DRMWINDEVICE, **LPLPDIRECT3DRMWINDEVICE;
/*****************************************************************************
* IDirect3DRMWinDevice interface
*/
#define INTERFACE IDirect3DRMWinDevice
DECLARE_INTERFACE_(IDirect3DRMWinDevice,IDirect3DRMObject)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirect3DRMObject methods ***/
STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
STDMETHOD(SetName)(THIS_ const char *name) PURE;
STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
/*** IDirect3DRMWinDevice methods ***/
STDMETHOD(HandlePaint)(THIS_ HDC) PURE;
STDMETHOD(HandleActivate)(THIS_ WORD) PURE;
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IDirect3DRMWinDevice_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IDirect3DRMWinDevice_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IDirect3DRMWinDevice_Release(p) (p)->lpVtbl->Release(p)
/*** IDirect3DRMObject methods ***/
#define IDirect3DRMWinDevice_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
#define IDirect3DRMWinDevice_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
#define IDirect3DRMWinDevice_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
#define IDirect3DRMWinDevice_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
#define IDirect3DRMWinDevice_GetAppData(p) (p)->lpVtbl->GetAppData(p)
#define IDirect3DRMWinDevice_SetName(p,a) (p)->lpVtbl->SetName(p,a)
#define IDirect3DRMWinDevice_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
#define IDirect3DRMWinDevice_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
/*** IDirect3DRMWinDevice methods ***/
#define IDirect3DRMWinDevice_HandlePaint(p,a) (p)->lpVtbl->HandlePaint(p,a)
#define IDirect3DRMWinDevice_HandleActivate(p,a) (p)->lpVtbl->HandleActivate(p,a)
#else
/*** IUnknown methods ***/
#define IDirect3DRMWinDevice_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
#define IDirect3DRMWinDevice_AddRef(p) (p)->AddRef()
#define IDirect3DRMwinDevice_Release(p) (p)->Release()
/*** IDirect3DRMObject methods ***/
#define IDirect3DRMWinDevice_Clone(p,a,b,c) (p)->Clone(a,b,c)
#define IDirect3DRMWinDevice_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
#define IDirect3DRMWinDevice_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
#define IDirect3DRMWinDevice_SetAppData(p,a) (p)->SetAppData(a)
#define IDirect3DRMWinDevice_GetAppData(p) (p)->GetAppData()
#define IDirect3DRMWinDevice_SetName(p,a) (p)->SetName(a)
#define IDirect3DRMWinDevice_GetName(p,a,b) (p)->GetName(a,b)
#define IDirect3DRMWinDevice_GetClassName(p,a,b) (p)->GetClassName(a,b)
/*** IDirect3DRMWinDevice methods ***/
#define IDirect3DRMWinDevice_HandlePaint(p,a) (p)->HandlePaint(a)
#define IDirect3DRMWinDevice_HandleActivate(p,a) (p)->HandleActivate(a)
#endif
#ifdef __cplusplus
}
#endif
#endif /* __D3DRMWIN_H__ */
+25 -3
View File
@@ -1,6 +1,8 @@
#ifndef _DBT_H
#define _DBT_H
#include "winuser.h"
#ifdef __cplusplus
extern "C" {
#endif
@@ -18,6 +20,7 @@ extern "C" {
#define DBT_DEVTYP_PORT 3
#define DBT_DEVTYP_NET 4
#define DBT_DEVTYP_DEVICEINTERFACE 5
#define DBT_DEVTYP_HANDLE 6
#define DBT_APPYBEGIN 0
#define DBT_APPYEND 1
#define DBT_DEVNODES_CHANGED 7
@@ -99,18 +102,37 @@ typedef struct _DEV_BROADCAST_VOLUME {
DWORD dbcv_unitmask;
WORD dbcv_flags;
} DEV_BROADCAST_VOLUME,*PDEV_BROADCAST_VOLUME;
typedef struct _DEV_BROADCAST_DEVICEINTERFACE {
typedef struct _DEV_BROADCAST_DEVICEINTERFACE_A {
DWORD dbcc_size;
DWORD dbcc_devicetype;
DWORD dbcc_reserved;
GUID dbcc_classguid;
TCHAR dbcc_name[1];
} DEV_BROADCAST_DEVICEINTERFACE, *PDEV_BROADCAST_DEVICEINTERFACE;
CHAR dbcc_name[1];
} DEV_BROADCAST_DEVICEINTERFACE_A, *PDEV_BROADCAST_DEVICEINTERFACE_A;
typedef struct _DEV_BROADCAST_DEVICEINTERFACE_W {
DWORD dbcc_size;
DWORD dbcc_devicetype;
DWORD dbcc_reserved;
GUID dbcc_classguid;
WCHAR dbcc_name[1];
} DEV_BROADCAST_DEVICEINTERFACE_W, *PDEV_BROADCAST_DEVICEINTERFACE_W;
typedef struct _DEV_BROADCAST_HANDLE {
DWORD dbch_size;
DWORD dbch_devicetype;
DWORD dbch_reserved;
HANDLE dbch_handle;
HDEVNOTIFY dbch_hdevnotify;
GUID dbch_eventguid;
LONG dbch_nameoffset;
BYTE dbch_data[1];
} DEV_BROADCAST_HANDLE, *PDEV_BROADCAST_HANDLE;
#ifdef UNICODE
typedef DEV_BROADCAST_PORT_W DEV_BROADCAST_PORT, *PDEV_BROADCAST_PORT;
typedef DEV_BROADCAST_DEVICEINTERFACE_W DEV_BROADCAST_DEVICEINTERFACE, *PDEV_BROADCAST_DEVICEINTERFACE;
#else
typedef DEV_BROADCAST_PORT_A DEV_BROADCAST_PORT, *PDEV_BROADCAST_PORT;
typedef DEV_BROADCAST_DEVICEINTERFACE_A DEV_BROADCAST_DEVICEINTERFACE, *PDEV_BROADCAST_DEVICEINTERFACE;
#endif
#ifdef __cplusplus
+3
View File
@@ -13,7 +13,10 @@
#endif
#define _FACDD 0x876
#ifndef MAKE_DDHRESULT
#define MAKE_DDHRESULT(c) MAKE_HRESULT(1,_FACDD,c)
#endif
#ifndef DIRECTDRAW_VERSION
#define DIRECTDRAW_VERSION 0x0700
+12 -1
View File
@@ -275,7 +275,18 @@ interface IOleCommandTarget : IUnknown
OLECMDID_OPTICAL_GETZOOMRANGE = 64,
OLECMDID_WINDOWSTATECHANGED = 65,
OLECMDID_ACTIVEXINSTALLSCOPE = 66,
OLECMDID_UPDATETRAVELENTRY_DATARECOVERY = 67
OLECMDID_UPDATETRAVELENTRY_DATARECOVERY = 67,
OLECMDID_SHOWTASKDLG = 68,
OLECMDID_POPSTATEEVENT = 69,
OLECMDID_VIEWPORT_MODE = 70,
OLECMDID_LAYOUT_VIEWPORT_WIDTH = 71,
OLECMDID_VISUAL_VIEWPORT_EXCLUDE_BOTTOM = 72,
OLECMDID_USER_OPTICAL_ZOOM = 73,
OLECMDID_PAGEAVAILABLE = 74,
OLECMDID_GETUSERSCALABLE = 75,
OLECMDID_UPDATE_CARET = 76,
OLECMDID_ENABLE_VISIBILITY = 77,
OLECMDID_MEDIA_PLAYBACK = 78
} OLECMDID;
HRESULT QueryStatus(
+693
View File
@@ -43,6 +43,286 @@ typedef enum
ADS_RIGHT_GENERIC_READ = 0x80000000
} ADS_RIGHTS_ENUM;
typedef enum
{
ADS_SECURE_AUTHENTICATION = 0x1,
ADS_USE_ENCRYPTION = 0x2,
ADS_USE_SSL = 0x2,
ADS_READONLY_SERVER = 0x4,
ADS_PROMPT_CREDENTIALS = 0x8,
ADS_NO_AUTHENTICATION = 0x10,
ADS_FAST_BIND = 0x20,
ADS_USE_SIGNING = 0x40,
ADS_USE_SEALING = 0x80,
ADS_USE_DELEGATION = 0x100,
ADS_SERVER_BIND = 0x200,
ADS_NO_REFERRAL_CHASING = 0x400,
ADS_AUTH_RESERVED = 0x80000000
} ADS_AUTHENTICATION_ENUM;
typedef enum
{
ADS_SEARCHPREF_ASYNCHRONOUS,
ADS_SEARCHPREF_DEREF_ALIASES,
ADS_SEARCHPREF_SIZE_LIMIT,
ADS_SEARCHPREF_TIME_LIMIT,
ADS_SEARCHPREF_ATTRIBTYPES_ONLY,
ADS_SEARCHPREF_SEARCH_SCOPE,
ADS_SEARCHPREF_TIMEOUT,
ADS_SEARCHPREF_PAGESIZE,
ADS_SEARCHPREF_PAGED_TIME_LIMIT,
ADS_SEARCHPREF_CHASE_REFERRALS,
ADS_SEARCHPREF_SORT_ON,
ADS_SEARCHPREF_CACHE_RESULTS,
ADS_SEARCHPREF_DIRSYNC,
ADS_SEARCHPREF_TOMBSTONE,
ADS_SEARCHPREF_VLV,
ADS_SEARCHPREF_ATTRIBUTE_QUERY,
ADS_SEARCHPREF_SECURITY_MASK,
ADS_SEARCHPREF_DIRSYNC_FLAG,
ADS_SEARCHPREF_EXTENDED_DN
} ADS_SEARCHPREF_ENUM;
typedef ADS_SEARCHPREF_ENUM *PADS_SEARCHPREF_INFO;
typedef enum
{
ADS_STATUS_S_OK,
ADS_STATUS_INVALID_SEARCHPREF,
ADS_STATUS_INVALID_SEARCHPREFVALUE
} ADS_STATUSENUM;
typedef enum
{
ADSTYPE_INVALID,
ADSTYPE_DN_STRING,
ADSTYPE_CASE_EXACT_STRING,
ADSTYPE_CASE_IGNORE_STRING,
ADSTYPE_PRINTABLE_STRING,
ADSTYPE_NUMERIC_STRING,
ADSTYPE_BOOLEAN,
ADSTYPE_INTEGER,
ADSTYPE_OCTET_STRING,
ADSTYPE_UTC_TIME,
ADSTYPE_LARGE_INTEGER,
ADSTYPE_PROV_SPECIFIC,
ADSTYPE_OBJECT_CLASS,
ADSTYPE_CASEIGNORE_LIST,
ADSTYPE_OCTET_LIST,
ADSTYPE_PATH,
ADSTYPE_POSTALADDRESS,
ADSTYPE_TIMESTAMP,
ADSTYPE_BACKLINK,
ADSTYPE_TYPEDNAME,
ADSTYPE_HOLD,
ADSTYPE_NETADDRESS,
ADSTYPE_REPLICAPOINTER,
ADSTYPE_FAXNUMBER,
ADSTYPE_EMAIL,
ADSTYPE_NT_SECURITY_DESCRIPTOR,
ADSTYPE_UNKNOWN,
ADSTYPE_DN_WITH_BINARY,
ADSTYPE_DN_WITH_STRING
} ADSTYPEENUM;
typedef enum
{
ADS_PASSWORD_ENCODE_REQUIRE_SSL,
ADS_PASSWORD_ENCODE_CLEAR
} ADS_PASSWORD_ENCODING_ENUM;
typedef struct _ADS_CASEIGNORE_LIST
{
struct _ADS_CASEIGNORE_LIST *Next;
LPWSTR String;
} ADS_CASEIGNORE_LIST;
typedef struct _ADS_OCTET_LIST
{
struct _ADS_OCTET_LIST *Next;
DWORD Length;
BYTE *Data;
} ADS_OCTET_LIST;
typedef struct
{
DWORD Type;
LPWSTR VolumeName;
LPWSTR Path;
} ADS_PATH, *PADS_PATH;
typedef struct
{
DWORD WholeSeconds;
DWORD EventID;
} ADS_TIMESTAMP;
typedef ADSTYPEENUM ADSTYPE;
typedef LPWSTR ADS_DN_STRING;
typedef LPWSTR *PADS_DN_STRING;
typedef LPWSTR ADS_CASE_EXACT_STRING;
typedef LPWSTR *PADS_CASE_EXACT_STRING;
typedef LPWSTR ADS_CASE_IGNORE_STRING;
typedef LPWSTR *PADS_CASE_IGNORE_STRING;
typedef LPWSTR ADS_PRINTABLE_STRING;
typedef LPWSTR *PADS_PRINTABLE_STRING;
typedef LPWSTR ADS_NUMERIC_STRING;
typedef LPWSTR *PADS_NUMERIC_STRING;
typedef DWORD ADS_BOOLEAN;
typedef DWORD *LPNDS_BOOLEAN;
typedef DWORD ADS_INTEGER;
typedef DWORD *PADS_INTEGER;
typedef SYSTEMTIME ADS_UTC_TIME;
typedef SYSTEMTIME *PADS_UTC_TIME;
typedef LARGE_INTEGER ADS_LARGE_INTEGER;
typedef LARGE_INTEGER *PADS_LARGE_INTEGER;
typedef LPWSTR ADS_OBJECT_CLASS;
typedef LPWSTR *PADS_OBJECT_CLASS;
typedef struct _ADS_OCTET_LIST *PADS_OCTET_LIST;
typedef struct _ADS_CASEIGNORE_LIST *PADS_CASEIGNORE_LIST;
typedef ADS_STATUSENUM ADS_STATUS;
typedef ADS_SEARCHPREF_ENUM ADS_SEARCHPREF;
typedef HANDLE ADS_SEARCH_HANDLE;
typedef HANDLE *PADS_SEARCH_HANDLE;
typedef struct
{
DWORD dwLength;
BYTE *lpValue;
} ADS_OCTET_STRING;
typedef struct
{
DWORD dwLength;
BYTE *lpValue;
} ADS_PROV_SPECIFIC;
typedef struct
{
LPWSTR PostalAddress[ 6 ];
} ADS_POSTALADDRESS, *PADS_POSTALADDRESS;
typedef struct
{
LPWSTR ObjectName;
DWORD Level;
DWORD Interval;
} ADS_TYPEDNAME, *PADS_TYPEDNAME;
typedef struct
{
DWORD RemoteID;
LPWSTR ObjectName;
} ADS_BACKLINK;
typedef struct
{
LPWSTR ObjectName;
DWORD Amount;
} ADS_HOLD;
typedef struct
{
DWORD AddressType;
DWORD AddressLength;
BYTE *Address;
} ADS_NETADDRESS, *PADS_NETADDRESS;
typedef struct
{
LPWSTR ServerName;
DWORD ReplicaType;
DWORD ReplicaNumber;
DWORD Count;
PADS_NETADDRESS ReplicaAddressHints;
} ADS_REPLICAPOINTER, *PADS_REPLICAPOINTER;
typedef struct
{
LPWSTR TelephoneNumber;
DWORD NumberOfBits;
BYTE *Parameters;
} ADS_FAXNUMBER, *PADS_FAXNUMBER;
typedef struct
{
LPWSTR Address;
DWORD Type;
} ADS_EMAIL, *PADS_EMAIL;
typedef struct
{
DWORD dwLength;
BYTE *lpValue;
} ADS_NT_SECURITY_DESCRIPTOR;
typedef struct
{
DWORD dwLength;
BYTE *lpBinaryValue;
LPWSTR pszDNString;
} ADS_DN_WITH_BINARY, *PADS_DN_WITH_BINARY;
typedef struct
{
LPWSTR pszStringValue;
LPWSTR pszDNString;
} ADS_DN_WITH_STRING, *PADS_DN_WITH_STRING;
typedef struct _adsvalue
{
ADSTYPE dwType;
union
{
ADS_DN_STRING DNString;
ADS_CASE_EXACT_STRING CaseExactString;
ADS_CASE_IGNORE_STRING CaseIgnoreString;
ADS_PRINTABLE_STRING PrintableString;
ADS_NUMERIC_STRING NumericString;
ADS_BOOLEAN Boolean;
ADS_INTEGER Integer;
ADS_OCTET_STRING OctetString;
ADS_UTC_TIME UTCTime;
ADS_LARGE_INTEGER LargeInteger;
ADS_OBJECT_CLASS ClassName;
ADS_PROV_SPECIFIC ProviderSpecific;
PADS_CASEIGNORE_LIST pCaseIgnoreList;
PADS_OCTET_LIST pOctetList;
PADS_PATH pPath;
PADS_POSTALADDRESS pPostalAddress;
ADS_TIMESTAMP Timestamp;
ADS_BACKLINK BackLink;
PADS_TYPEDNAME pTypedName;
ADS_HOLD Hold;
PADS_NETADDRESS pNetAddress;
PADS_REPLICAPOINTER pReplicaPointer;
PADS_FAXNUMBER pFaxNumber;
ADS_EMAIL Email;
ADS_NT_SECURITY_DESCRIPTOR SecurityDescriptor;
PADS_DN_WITH_BINARY pDNWithBinary;
PADS_DN_WITH_STRING pDNWithString;
};
} ADSVALUE, *PADSVALUE;
typedef struct ads_searchpref_info
{
ADS_SEARCHPREF dwSearchPref;
ADSVALUE vValue;
ADS_STATUS dwStatus;
} ADS_SEARCHPREF_INFO;
typedef struct ads_search_column
{
LPWSTR pszAttrName;
ADSTYPE dwADsType;
PADSVALUE pADsValues;
DWORD dwNumValues;
HANDLE hReserved;
} ADS_SEARCH_COLUMN, *PADS_SEARCH_COLUMN;
/*****************************************************************************
* IADsContainer interface
*/
@@ -84,3 +364,416 @@ interface IADsContainer: IDispatch
[in] BSTR bstrNewName,
[out, retval] IDispatch **ppObject);
}
/*****************************************************************************
* IADs interface
*/
[
odl,
uuid(FD8256D0-FD15-11CE-ABC4-02608C9E7553),
dual,
oleautomation
]
interface IADs : IDispatch
{
[id(0x00000002), propget]
HRESULT Name([out, retval] BSTR* retval);
[id(0x00000003), propget]
HRESULT Class([out, retval] BSTR* retval);
[id(0x00000004), propget]
HRESULT GUID([out, retval] BSTR* retval);
[id(0x00000005), propget]
HRESULT ADsPath([out, retval] BSTR* retval);
[id(0x00000006), propget]
HRESULT Parent([out, retval] BSTR* retval);
[id(0x00000007), propget]
HRESULT Schema([out, retval] BSTR* retval);
[id(0x00000008)]
HRESULT GetInfo();
[id(0x00000009)]
HRESULT SetInfo();
[id(0x0000000a)]
HRESULT Get([in] BSTR bstrName, [out, retval] VARIANT* pvProp);
[id(0x0000000b)]
HRESULT Put([in] BSTR bstrName, [in] VARIANT vProp);
[id(0x0000000c)]
HRESULT GetEx([in] BSTR bstrName, [out, retval] VARIANT* pvProp);
[id(0x0000000d)]
HRESULT PutEx([in] long lnControlCode, [in] BSTR bstrName, [in] VARIANT vProp);
[id(0x0000000e)]
HRESULT GetInfoEx( [in] VARIANT vProperties, [in] long lnReserved);
};
/*****************************************************************************
* IADsMembers interface
*/
[
odl,
uuid(451A0030-72EC-11CF-B03B-00AA006E0975),
dual,
oleautomation
]
interface IADsMembers : IDispatch
{
[id(0x00000002), propget]
HRESULT Count([out, retval] long* plCount);
[id(0xfffffffc), propget]
HRESULT _NewEnum([out, retval] IUnknown** ppEnumerator);
[id(0x00000003), propget]
HRESULT Filter([out, retval] VARIANT* pvFilter);
[id(0x00000003), propput]
HRESULT Filter([in] VARIANT pvFilter);
};
/*****************************************************************************
* IADsGroup interface
*/
[
odl,
uuid(27636B00-410F-11CF-B1FF-02608C9E7553),
dual,
oleautomation
]
interface IADsGroup : IADs {
[id(0x0000000f), propget]
HRESULT Description([out, retval] BSTR* retval);
[id(0x0000000f), propput]
HRESULT Description([in] BSTR retval);
[id(0x00000010)]
HRESULT Members([out, retval] IADsMembers** ppMembers);
[id(0x00000011)]
HRESULT IsMember([in] BSTR bstrMember, [out, retval] VARIANT_BOOL* bMember);
[id(0x00000012)]
HRESULT Add([in] BSTR bstrNewItem);
[id(0x00000013)]
HRESULT Remove([in] BSTR bstrItemToBeRemoved);
};
/*****************************************************************************
* IADsUser interface
*/
[
odl,
uuid(3E37E320-17E2-11CF-ABC4-02608C9E7553),
dual,
oleautomation
]
interface IADsUser : IADs
{
[id(0x00000035), propget]
HRESULT BadLoginAddress([out, retval] BSTR* retval);
[id(0x00000036), propget]
HRESULT BadLoginCount([out, retval] long* retval);
[id(0x00000038), propget]
HRESULT LastLogin([out, retval] DATE* retval);
[id(0x00000039), propget]
HRESULT LastLogoff([out, retval] DATE* retval);
[id(0x0000003a), propget]
HRESULT LastFailedLogin([out, retval] DATE* retval);
[id(0x0000003b), propget]
HRESULT PasswordLastChanged([out, retval] DATE* retval);
[id(0x0000000f), propget]
HRESULT Description([out, retval] BSTR* retval);
[id(0x0000000f), propput]
HRESULT Description([in] BSTR retval);
[id(0x00000013), propget]
HRESULT Division([out, retval] BSTR* retval);
[id(0x00000013), propput]
HRESULT Division([in] BSTR retval);
[id(0x0000007a), propget]
HRESULT Department([out, retval] BSTR* retval);
[id(0x0000007a), propput]
HRESULT Department([in] BSTR retval);
[id(0x00000014), propget]
HRESULT EmployeeID([out, retval] BSTR* retval);
[id(0x00000014), propput]
HRESULT EmployeeID([in] BSTR retval);
[id(0x00000017), propget]
HRESULT FullName([out, retval] BSTR* retval);
[id(0x00000017), propput]
HRESULT FullName([in] BSTR retval);
[id(0x00000016), propget]
HRESULT FirstName([out, retval] BSTR* retval);
[id(0x00000016), propput]
HRESULT FirstName([in] BSTR retval);
[id(0x00000019), propget]
HRESULT LastName([out, retval] BSTR* retval);
[id(0x00000019), propput]
HRESULT LastName([in] BSTR retval);
[id(0x0000001b), propget]
HRESULT OtherName([out, retval] BSTR* retval);
[id(0x0000001b), propput]
HRESULT OtherName([in] BSTR retval);
[id(0x00000072), propget]
HRESULT NamePrefix([out, retval] BSTR* retval);
[id(0x00000072), propput]
HRESULT NamePrefix([in] BSTR retval);
[id(0x00000073), propget]
HRESULT NameSuffix([out, retval] BSTR* retval);
[id(0x00000073), propput]
HRESULT NameSuffix([in] BSTR retval);
[id(0x00000024), propget]
HRESULT Title([out, retval] BSTR* retval);
[id(0x00000024), propput]
HRESULT Title([in] BSTR retval);
[id(0x0000001a), propget]
HRESULT Manager([out, retval] BSTR* retval);
[id(0x0000001a), propput]
HRESULT Manager([in] BSTR retval);
[id(0x00000020), propget]
HRESULT TelephoneHome([out, retval] VARIANT* retval);
[id(0x00000020), propput]
HRESULT TelephoneHome([in] VARIANT retval);
[id(0x00000021), propget]
HRESULT TelephoneMobile([out, retval] VARIANT* retval);
[id(0x00000021), propput]
HRESULT TelephoneMobile([in] VARIANT retval);
[id(0x00000022), propget]
HRESULT TelephoneNumber([out, retval] VARIANT* retval);
[id(0x00000022), propput]
HRESULT TelephoneNumber([in] VARIANT retval);
[id(0x00000011), propget]
HRESULT TelephonePager([out, retval] VARIANT* retval);
[id(0x00000011), propput]
HRESULT TelephonePager([in] VARIANT retval);
[id(0x00000010), propget]
HRESULT FaxNumber([out, retval] VARIANT* retval);
[id(0x00000010), propput]
HRESULT FaxNumber([in] VARIANT retval);
[id(0x0000001c), propget]
HRESULT OfficeLocations([out, retval] VARIANT* retval);
[id(0x0000001c), propput]
HRESULT OfficeLocations([in] VARIANT retval);
[id(0x0000001e), propget]
HRESULT PostalAddresses([out, retval] VARIANT* retval);
[id(0x0000001e), propput]
HRESULT PostalAddresses([in] VARIANT retval);
[id(0x0000001f), propget]
HRESULT PostalCodes([out, retval] VARIANT* retval);
[id(0x0000001f), propput]
HRESULT PostalCodes([in] VARIANT retval);
[id(0x00000075), propget]
HRESULT SeeAlso([out, retval] VARIANT* retval);
[id(0x00000075), propput]
HRESULT SeeAlso([in] VARIANT retval);
[id(0x00000025), propget]
HRESULT AccountDisabled([out, retval] VARIANT_BOOL* retval);
[id(0x00000025), propput]
HRESULT AccountDisabled([in] VARIANT_BOOL retval);
[id(0x00000026), propget]
HRESULT AccountExpirationDate([out, retval] DATE* retval);
[id(0x00000026), propput]
HRESULT AccountExpirationDate([in] DATE retval);
[id(0x00000029), propget]
HRESULT GraceLoginsAllowed([out, retval] long* retval);
[id(0x00000029), propput]
HRESULT GraceLoginsAllowed([in] long retval);
[id(0x0000002a), propget]
HRESULT GraceLoginsRemaining([out, retval] long* retval);
[id(0x0000002a), propput]
HRESULT GraceLoginsRemaining([in] long retval);
[id(0x0000002b), propget]
HRESULT IsAccountLocked([out, retval] VARIANT_BOOL* retval);
[id(0x0000002b), propput]
HRESULT IsAccountLocked([in] VARIANT_BOOL retval);
[id(0x0000002d), propget]
HRESULT LoginHours([out, retval] VARIANT* retval);
[id(0x0000002d), propput]
HRESULT LoginHours([in] VARIANT retval);
[id(0x0000002e), propget]
HRESULT LoginWorkstations([out, retval] VARIANT* retval);
[id(0x0000002e), propput]
HRESULT LoginWorkstations([in] VARIANT retval);
[id(0x0000002f), propget]
HRESULT MaxLogins([out, retval] long* retval);
[id(0x0000002f), propput]
HRESULT MaxLogins([in] long retval);
[id(0x00000030), propget]
HRESULT MaxStorage([out, retval] long* retval);
[id(0x00000030), propput]
HRESULT MaxStorage([in] long retval);
[id(0x00000031), propget]
HRESULT PasswordExpirationDate([out, retval] DATE* retval);
[id(0x00000031), propput]
HRESULT PasswordExpirationDate([in] DATE retval);
[id(0x00000032), propget]
HRESULT PasswordMinimumLength([out, retval] long* retval);
[id(0x00000032), propput]
HRESULT PasswordMinimumLength([in] long retval);
[id(0x00000033), propget]
HRESULT PasswordRequired([out, retval] VARIANT_BOOL* retval);
[id(0x00000033), propput]
HRESULT PasswordRequired([in] VARIANT_BOOL retval);
[id(0x00000034), propget]
HRESULT RequireUniquePassword([out, retval] VARIANT_BOOL* retval);
[id(0x00000034), propput]
HRESULT RequireUniquePassword([in] VARIANT_BOOL retval);
[id(0x0000003c), propget]
HRESULT EmailAddress([out, retval] BSTR* retval);
[id(0x0000003c), propput]
HRESULT EmailAddress([in] BSTR retval);
[id(0x0000003d), propget]
HRESULT HomeDirectory([out, retval] BSTR* retval);
[id(0x0000003d), propput]
HRESULT HomeDirectory([in] BSTR retval);
[id(0x0000003e), propget]
HRESULT Languages([out, retval] VARIANT* retval);
[id(0x0000003e), propput]
HRESULT Languages([in] VARIANT retval);
[id(0x0000003f), propget]
HRESULT Profile([out, retval] BSTR* retval);
[id(0x0000003f), propput]
HRESULT Profile([in] BSTR retval);
[id(0x00000040), propget]
HRESULT LoginScript([out, retval] BSTR* retval);
[id(0x00000040), propput]
HRESULT LoginScript([in] BSTR retval);
[id(0x00000041), propget]
HRESULT Picture([out, retval] VARIANT* retval);
[id(0x00000041), propput]
HRESULT Picture([in] VARIANT retval);
[id(0x00000078), propget]
HRESULT HomePage([out, retval] BSTR* retval);
[id(0x00000078), propput]
HRESULT HomePage([in] BSTR retval);
[id(0x00000042)]
HRESULT Groups([out, retval] IADsMembers** ppGroups);
[id(0x00000043)]
HRESULT SetPassword([in] BSTR NewPassword);
[id(0x00000044)]
HRESULT ChangePassword([in] BSTR bstrOldPassword, [in] BSTR bstrNewPassword);
};
/*****************************************************************************
* IDirectorySearch interface
*/
[
odl,
local,
uuid(109BA8EC-92F0-11D0-A790-00C04FD8D5A8)
]
interface IDirectorySearch : IUnknown
{
HRESULT SetSearchPreference([in] PADS_SEARCHPREF_INFO pSearchPrefs, [in] DWORD dwNumPrefs);
HRESULT ExecuteSearch([in] LPWSTR pszSearchFilter, [in] LPWSTR* pAttributeNames,
[in] DWORD dwNumberAttributes, [out] PADS_SEARCH_HANDLE phSearchResult);
HRESULT AbandonSearch([in] ADS_SEARCH_HANDLE phSearchResult);
HRESULT GetFirstRow([in] ADS_SEARCH_HANDLE hSearchResult);
HRESULT GetNextRow([in] ADS_SEARCH_HANDLE hSearchResult);
HRESULT GetPreviousRow([in] ADS_SEARCH_HANDLE hSearchResult);
HRESULT GetNextColumnName([in] ADS_SEARCH_HANDLE hSearchHandle, [out] LPWSTR* ppszColumnName);
HRESULT GetColumn( [in] ADS_SEARCH_HANDLE hSearchResult, [in] LPWSTR szColumnName,
[out] PADS_SEARCH_COLUMN pSearchColumn);
HRESULT FreeColumn([in] PADS_SEARCH_COLUMN pSearchColumn);
HRESULT CloseSearchHandle([in] ADS_SEARCH_HANDLE hSearchResult);
};
+1 -1
View File
@@ -106,7 +106,7 @@ typedef enum _IMAGEHLP_STATUS_REASON {
BindMismatchedSymbols,
BindSymbolsNotUpdated
} IMAGEHLP_STATUS_REASON;
typedef BOOL(WINAPI*PIMAGEHLP_STATUS_ROUTINE)(IMAGEHLP_STATUS_REASON,LPSTR,LPSTR,ULONG,ULONG);
typedef BOOL(WINAPI*PIMAGEHLP_STATUS_ROUTINE)(IMAGEHLP_STATUS_REASON,PCSTR,PCSTR,ULONG_PTR,ULONG_PTR);
typedef struct _LOADED_IMAGE {
PSTR ModuleName;
HANDLE hFile;
+8
View File
@@ -190,6 +190,14 @@ typedef struct _IP_ADAPTER_ADDRESSES {
DWORD ZoneIndices[16];
PIP_ADAPTER_PREFIX FirstPrefix;
} IP_ADAPTER_ADDRESSES, *PIP_ADAPTER_ADDRESSES;
#define GAA_FLAG_SKIP_UNICAST 0x00000001
#define GAA_FLAG_SKIP_ANYCAST 0x00000002
#define GAA_FLAG_SKIP_MULTICAST 0x00000004
#define GAA_FLAG_SKIP_DNS_SERVER 0x00000008
#define GAA_FLAG_INCLUDE_PREFIX 0x00000010
#define GAA_FLAG_SKIP_FRIENDLY_NAME 0x00000020
#endif
#ifdef __cplusplus
+2 -1
View File
@@ -18,6 +18,8 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#pragma once
#define DLG_ACMFORMATCHOOSE_ID 70
#define IDD_ACMFORMATCHOOSE_BTN_HELP 9
#define IDD_ACMFORMATCHOOSE_CMB_CUSTOM 100
@@ -33,4 +35,3 @@
#define IDD_ACMFILTERCHOOSE_CMB_FILTER 102
#define IDD_ACMFILTERCHOOSE_BTN_SETNAME 103
#define IDD_ACMFILTERCHOOSE_BTN_DELNAME 104
+221 -118
View File
@@ -33,6 +33,8 @@ cpp_quote("HRESULT WINAPI TF_CreateThreadMgr(ITfThreadMgr **pptim);")
cpp_quote("HRESULT WINAPI TF_GetThreadMgr(ITfThreadMgr **pptim);")
cpp_quote("HRESULT WINAPI TF_CreateInputProcessorProfiles(ITfInputProcessorProfiles **ppipr);")
cpp_quote("HRESULT WINAPI TF_CreateLangBarMgr(ITfLangBarMgr **pppbm);")
cpp_quote("HRESULT WINAPI TF_CreateLangBarItemMgr(ITfLangBarItemMgr **pplbim);")
cpp_quote("HRESULT WINAPI TF_InvalidAssemblyListCacheIfExist(void);")
cpp_quote("EXTERN_C const GUID GUID_PROP_TEXTOWNER;")
cpp_quote("DEFINE_GUID(GUID_PROP_ATTRIBUTE,0x34b45670,0x7526,0x11d2,0xa1,0x47,0x00,0x10,0x5a,0x27,0x99,0xb5);")
@@ -79,6 +81,11 @@ cpp_quote("#define TF_MOD_LSHIFT 0x0100")
cpp_quote("#define TF_MOD_ON_KEYUP 0x0200")
cpp_quote("#define TF_MOD_IGNORE_ALL_MODIFIER 0x0400")
cpp_quote("#define TF_PROFILETYPE_INPUTPROCESSOR 0x0001")
cpp_quote("#define TF_PROFILETYPE_KEYBOARDLAYOUT 0x0002")
cpp_quote("#define TF_IPSINK_FLAG_ACTIVE 0x0001")
interface ITfDocumentMgr;
interface ITfContext;
interface IEnumTfDocumentMgrs;
@@ -99,6 +106,20 @@ interface ITfEditRecord;
interface ITfCompositionView;
interface ITfKeyEventSink;
cpp_quote("#if 0")
typedef [uuid(4f5d560f-5ab5-4dde-8c4d-404592857ab0)] UINT_PTR HKL;
cpp_quote("#endif")
typedef [uuid(e26d9e1d-691e-4f29-90d7-338dcf1f8cef)] struct TF_PERSISTENT_PROPERTY_HEADER_ACP
{
GUID guidType;
LONG ichStart;
LONG cch;
ULONG cb;
DWORD dwPrivate;
CLSID clsidTIP;
} TF_PERSISTENT_PROPERTY_HEADER_ACP;
typedef [uuid(e1b5808d-1e46-4c19-84dc-68c5f5978cc8)] struct TF_LANGUAGEPROFILE
{
CLSID clsid;
@@ -307,6 +328,8 @@ interface ITfContext : IUnknown
};
const DWORD TF_INVALID_COOKIE = 0xffffffff;
[
object,
uuid(4ea48a35-60ae-446f-8fd6-e6a8d82459f7),
@@ -421,6 +444,105 @@ interface ITfInputProcessorProfiles : IUnknown
[in] HKL hKL);
};
typedef [uuid(44d2825a-10e5-43b2-877f-6cb2f43b7e7e)]
struct TF_INPUTPROCESSORPROFILE {
DWORD dwProfileType;
LANGID langid;
CLSID clsid;
GUID guidProfile;
GUID catid;
HKL hklSubstitute;
DWORD dwCaps;
HKL hkl;
DWORD dwFlags;
} TF_INPUTPROCESSORPROFILE;
[
object,
uuid(71c6e74d-0f28-11d8-a82a-00065b84435c),
pointer_default(unique)
]
interface IEnumTfInputProcessorProfiles : IUnknown
{
HRESULT Clone(
[out] IEnumTfInputProcessorProfiles **ppEnum);
HRESULT Next(
[in] ULONG ulCount,
[out, size_is(ulCount), length_is(*pcFetch)] TF_INPUTPROCESSORPROFILE *pProfile,
[out] ULONG *pcFetch);
HRESULT Reset();
HRESULT Skip(
[in] ULONG ulCount);
}
[
object,
uuid(71c6e74c-0f28-11d8-a82a-00065b84435c),
pointer_default(unique)
]
interface ITfInputProcessorProfileMgr : IUnknown
{
HRESULT ActivateProfile(
[in] DWORD dwProfileType,
[in] LANGID langid,
[in] REFCLSID clsid,
[in] REFGUID guidProfile,
[in] HKL hkl,
[in] DWORD dwFlags);
HRESULT DeactivateProfile(
[in] DWORD dwProfileType,
[in] LANGID langid,
[in] REFCLSID clsid,
[in] REFGUID guidProfile,
[in] HKL hkl,
[in] DWORD dwFlags);
HRESULT GetProfile(
[in] DWORD dwProfileType,
[in] LANGID langid,
[in] REFCLSID clsid,
[in] REFGUID guidProfile,
[in] HKL hkl,
[out] TF_INPUTPROCESSORPROFILE *pProfile);
HRESULT EnumProfiles(
[in] LANGID langid,
[out] IEnumTfInputProcessorProfiles **ppEnum);
HRESULT ReleaseInputProcessor(
[in] REFCLSID rclsid,
[in] DWORD dwFlags);
HRESULT RegisterProfile(
[in] REFCLSID rclsid,
[in] LANGID langid,
[in] REFGUID guidProfile,
[in, size_is(cchDesc)] const WCHAR *pchDesc,
[in] ULONG cchDesc,
[in, size_is(cchFile)] const WCHAR *pchIconFile,
[in] ULONG cchFile,
[in] ULONG uIconIndex,
[in] HKL hklsubstitute,
[in] DWORD dwPreferredLayout,
[in] BOOL bEnabledByDefault,
[in] DWORD dwFlags);
HRESULT UnregisterProfile(
[in] REFCLSID rclsid,
[in] LANGID langid,
[in] REFGUID guidProfile,
[in] DWORD dwFlags);
HRESULT GetActiveProfile(
[in] REFGUID catid,
[out] TF_INPUTPROCESSORPROFILE *pProfile);
}
typedef [uuid(c4cc07f1-80cc-4a7b-bc54-98512782cbe3)]
enum {
TF_LS_NONE = 0,
@@ -615,6 +737,19 @@ interface ITfContextOwnerCompositionSink : IUnknown
[in] ITfCompositionView *pComposition);
};
[
object,
uuid(b246cb75-a93e-4652-bf8c-b3fe0cfd7e57),
pointer_default(unique)
]
interface ITfActiveLanguageProfileNotifySink : IUnknown
{
HRESULT OnActivated(
[in] REFCLSID clsid,
[in] REFGUID guidProfile,
[in] BOOL fActivated);
}
[
object,
uuid(3d61bf11-ac5f-42c8-a4cb-931bcc28c744),
@@ -1193,6 +1328,51 @@ interface ITfContextOwnerCompositionServices : ITfContextComposition
HRESULT TerminateComposition([in] ITfCompositionView *pComposition);
}
[
object,
uuid(4ef89150-0807-11d3-8df0-00105a2799b5),
pointer_default(unique)
]
interface ITfPersistentPropertyLoaderACP : IUnknown
{
HRESULT LoadProperty(
[in] const TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr,
[out] IStream **ppStream);
}
[
object,
uuid(b23eb630-3e1c-11d3-a745-0050040ab407),
pointer_default(unique)
]
interface ITfContextOwnerServices : IUnknown
{
HRESULT OnLayoutChange();
HRESULT OnStatusChange([in] DWORD dwFlags);
HRESULT OnAttributeChange([in] REFGUID rguidAttribute);
HRESULT Serialize(
[in] ITfProperty *pProp,
[in] ITfRange *pRange,
[out] TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr,
[in] IStream *pStream);
HRESULT Unserialize(
[in] ITfProperty *pProp,
[in] const TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr,
[in] IStream *pStream,
[in] ITfPersistentPropertyLoaderACP *pLoader);
HRESULT ForceLoadProperty([in] ITfProperty *pProp);
HRESULT CreateRange(
[in] LONG acpStart,
[in] LONG acpEnd,
[out] ITfRangeACP **ppRange);
}
[
object,
uuid(17d49a3d-f8b8-4b2f-b254-52319dd64c53),
@@ -1362,139 +1542,62 @@ interface ITfThreadFocusSink : IUnknown
[
object,
uuid(101d6610-0990-11d3-8df0-00105a2799b5),
uuid(71c6e74e-0f28-11d8-a82a-00065b84435c),
pointer_default(unique)
]
interface ITfFunctionProvider : IUnknown
interface ITfInputProcessorProfileActivationSink : IUnknown
{
HRESULT GetType(
[out] GUID *pguid);
HRESULT GetDescription(
[out] BSTR *pbstrDesc);
HRESULT GetFunction(
[in] REFGUID rguid,
[in] REFIID riid,
[out, iid_is(riid)] IUnknown **ppunk);
HRESULT OnActivated(
[in] DWORD dwProfileType,
[in] LANGID langid,
[in] REFCLSID clsid,
[in] REFGUID catid,
[in] REFGUID guidProfile,
[in] HKL hkl,
[in] DWORD dwFlags);
}
[
object,
uuid(e4b24db0-0990-11d3-8df0-00105a2799b5),
pointer_default(unique)
object,
local,
uuid(a1adaaa2-3a24-449d-ac96-5183e7f5c217),
pointer_default(unique)
]
interface IEnumTfFunctionProviders : IUnknown
interface ITfMouseSink : IUnknown
{
HRESULT Clone(
[out] IEnumTfFunctionProviders **ppEnum);
HRESULT Next(
[in] ULONG ulCount,
[out, size_is(ulCount), length_is(*pcFetch)] ITfFunctionProvider **ppCmdobj,
[out] ULONG *pcFetch);
HRESULT Reset();
HRESULT Skip(
[in] ULONG ulCount);
};
[
object,
uuid(2433bf8e-0f9b-435c-ba2c-180611978c30),
pointer_default(unique)
]
interface ITfContextView : IUnknown
{
HRESULT GetRangeFromPoint(
[in] TfEditCookie ec,
[in] const POINT *ppt,
[in] DWORD dwFlags,
[out] ITfRange **ppRange);
HRESULT GetTextExt(
[in] TfEditCookie ec,
[in] ITfRange *pRange,
[out] RECT *prc,
[out] BOOL *pfClipped);
HRESULT GetScreenExt(
[out] RECT *prc);
HRESULT GetWnd(
[out] HWND *phwnd);
};
[
object,
uuid(f0c0f8dd-cf38-44e1-bb0f-68cf0d551c78),
pointer_default(unique)
]
interface IEnumTfContextViews : IUnknown
{
HRESULT Clone(
[out] IEnumTfContextViews **ppEnum);
HRESULT Next(
[in] ULONG ulCount,
[out, size_is(ulCount), length_is(*pcFetched)] ITfContextView **rgViews,
[out] ULONG *pcFetched);
HRESULT Reset();
HRESULT Skip(
[in] ULONG ulCount);
};
[
object,
uuid(19188cb0-aca9-11d2-afc5-00105a2799b5),
pointer_default(unique)
]
interface IEnumTfProperties : IUnknown
{
HRESULT Clone(
[out] IEnumTfProperties **ppEnum);
HRESULT Next(
[in] ULONG ulCount,
[out, size_is(ulCount), length_is(*pcFetched)] ITfProperty **ppProp,
[out] ULONG *pcFetched);
HRESULT Reset();
HRESULT Skip(
[in] ULONG ulCount);
HRESULT OnMouseEvent(
[in] ULONG uEdge,
[in] ULONG uQuadrant,
[in] DWORD dwBtnStatus,
[out] BOOL *pfEaten);
}
[
object,
uuid(463a506d-6992-49d2-9b88-93d55e70bb16),
pointer_default(unique)
object,
uuid(09d146cd-a544-4132-925b-7afa8ef322d0),
pointer_default(unique)
]
interface ITfRangeBackup : IUnknown
interface ITfMouseTracker : IUnknown
{
HRESULT Restore(
[in] TfEditCookie ec,
[in] ITfRange *pRange);
};
HRESULT AdviseMouseSink(
[in] ITfRange *range,
[in] ITfMouseSink *pSink,
[out] DWORD *pdwCookie);
HRESULT UnadviseMouseSink([in] DWORD dwCookie);
}
[
object,
uuid(42d4d099-7c1a-4a89-b836-6c6f22160df0),
pointer_default(unique)
object,
uuid(3bdd78e2-c16e-47fd-b883-ce6facc1a208),
pointer_default(unique)
]
interface ITfEditRecord : IUnknown
interface ITfMouseTrackerACP : IUnknown
{
const DWORD TF_GTP_INCL_TEXT = 0x1;
HRESULT AdviseMouseSink(
[in] ITfRangeACP *range,
[in] ITfMouseSink *pSink,
[out] DWORD *pdwCookie);
HRESULT GetSelectionStatus(
[out] BOOL *pfChanged);
HRESULT GetTextAndPropertyUpdates(
[in] DWORD dwFlags,
[in, size_is(cProperties)] const GUID **prgProperties,
[in] ULONG cProperties,
[out] IEnumTfRanges **ppEnum);
};
HRESULT UnadviseMouseSink([in] DWORD dwCookie);
}
+15
View File
@@ -145,6 +145,21 @@ typedef enum tagMSIDBSTATE
MSIDBSTATE_WRITE = 1
} MSIDBSTATE;
typedef enum tagMSITRANSFORM_VALIDATE
{
MSITRANSFORM_VALIDATE_LANGUAGE = 0x00000001,
MSITRANSFORM_VALIDATE_PRODUCT = 0x00000002,
MSITRANSFORM_VALIDATE_PLATFORM = 0x00000004,
MSITRANSFORM_VALIDATE_MAJORVERSION = 0x00000008,
MSITRANSFORM_VALIDATE_MINORVERSION = 0x00000010,
MSITRANSFORM_VALIDATE_UPDATEVERSION = 0x00000020,
MSITRANSFORM_VALIDATE_NEWLESSBASEVERSION = 0x00000040,
MSITRANSFORM_VALIDATE_NEWLESSEQUALBASEVERSION = 0x00000080,
MSITRANSFORM_VALIDATE_NEWEQUALBASEVERSION = 0x00000100,
MSITRANSFORM_VALIDATE_NEWGREATEREQUALBASEVERSION = 0x00000200,
MSITRANSFORM_VALIDATE_NEWGREATERBASEVERSION = 0x00000400,
MSITRANSFORM_VALIDATE_UPGRADECODE = 0x00000800
} MSITRANSFORM_VALIDATE;
#ifdef __cplusplus
extern "C" {
+3
View File
@@ -156,6 +156,9 @@ typedef struct SIP_ADD_NEWPROVIDER_
WCHAR *pwszRemoveFuncName;
WCHAR *pwszIsFunctionNameFmt2;
/* NTDDI_VERSION >= NTDDI_WIN8 */
WCHAR *pwszGetCapFuncName;
} SIP_ADD_NEWPROVIDER, *PSIP_ADD_NEWPROVIDER;
#include <poppack.h>
+115 -8
View File
@@ -461,10 +461,6 @@ typedef unsigned char UCHAR, *PUCHAR;
typedef unsigned short USHORT, *PUSHORT;
typedef unsigned long ULONG, *PULONG;
typedef CONST UCHAR *PCUCHAR;
typedef CONST USHORT *PCUSHORT;
typedef CONST ULONG *PCULONG;
typedef double DOUBLE;
/* Signed Types */
@@ -800,6 +796,26 @@ typedef struct _GROUP_AFFINITY {
#define RTL_CONST_CAST(type) (type)
#endif
#ifdef __cplusplus
#define DEFINE_ENUM_FLAG_OPERATORS(_ENUMTYPE) \
extern "C++" { \
inline _ENUMTYPE operator|(_ENUMTYPE a, _ENUMTYPE b) { return _ENUMTYPE(((int)a) | ((int)b)); } \
inline _ENUMTYPE &operator|=(_ENUMTYPE &a, _ENUMTYPE b) { return (_ENUMTYPE &)(((int &)a) |= ((int)b)); } \
inline _ENUMTYPE operator&(_ENUMTYPE a, _ENUMTYPE b) { return _ENUMTYPE(((int)a) & ((int)b)); } \
inline _ENUMTYPE &operator&=(_ENUMTYPE &a, _ENUMTYPE b) { return (_ENUMTYPE &)(((int &)a) &= ((int)b)); } \
inline _ENUMTYPE operator~(_ENUMTYPE a) { return _ENUMTYPE(~((int)a)); } \
inline _ENUMTYPE operator^(_ENUMTYPE a, _ENUMTYPE b) { return _ENUMTYPE(((int)a) ^ ((int)b)); } \
inline _ENUMTYPE &operator^=(_ENUMTYPE &a, _ENUMTYPE b) { return (_ENUMTYPE &)(((int &)a) ^= ((int)b)); } \
}
#else
#define DEFINE_ENUM_FLAG_OPERATORS(_ENUMTYPE)
#endif
#define COMPILETIME_OR_2FLAGS(a,b) ((UINT)(a)|(UINT)(b))
#define COMPILETIME_OR_3FLAGS(a,b,c) ((UINT)(a)|(UINT)(b)|(UINT)(c))
#define COMPILETIME_OR_4FLAGS(a,b,c,d) ((UINT)(a)|(UINT)(b)|(UINT)(c)|(UINT)(d))
#define COMPILETIME_OR_5FLAGS(a,b,c,d,e) ((UINT)(a)|(UINT)(b)|(UINT)(c)|(UINT)(d)|(UINT)(e))
/* Type Limits */
#define MINCHAR 0x80
#define MAXCHAR 0x7f
@@ -812,10 +828,15 @@ typedef struct _GROUP_AFFINITY {
#define MAXULONG 0xffffffff
#define MAXLONGLONG (0x7fffffffffffffffLL)
/* Multiplication and Shift Operations. Note: we don't use inline
asm functions, the compiler can optimize this better. */
#define Int32x32To64(a,b) (((__int64)(long)(a))*((__int64)(long)(b)))
#define UInt32x32To64(a,b) ((unsigned __int64)(unsigned int)(a)*(unsigned __int64)(unsigned int)(b))
/* 32 to 64 bit multiplication. GCC is really bad at optimizing the native math */
#if defined(_M_IX86) && defined(__GNUC__) && \
!defined(MIDL_PASS)&& !defined(RC_INVOKED) && !defined(_M_CEE_PURE)
#define Int32x32To64(a,b) __emul(a,b)
#define UInt32x32To64(a,b) __emulu(a,b)
#else
#define Int32x32To64(a,b) (((__int64)(long)(a))*((__int64)(long)(b)))
#define UInt32x32To64(a,b) ((unsigned __int64)(unsigned int)(a)*(unsigned __int64)(unsigned int)(b))
#endif
#if defined(MIDL_PASS)|| defined(RC_INVOKED) || defined(_M_CEE_PURE)
/* Use native math */
@@ -1401,9 +1422,23 @@ typedef struct _GROUP_AFFINITY {
#define LOCALE_NEUTRAL MAKELCID(MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), SORT_DEFAULT)
#define LOCALE_INVARIANT MAKELCID(MAKELANGID(LANG_INVARIANT, SUBLANG_NEUTRAL), SORT_DEFAULT)
typedef _Return_type_success_(return >= 0) LONG NTSTATUS;
typedef NTSTATUS *PNTSTATUS;
#ifndef __SECSTATUS_DEFINED__
typedef long SECURITY_STATUS;
#define __SECSTATUS_DEFINED__
#endif
/* Physical Addresses are always treated as 64-bit wide */
typedef LARGE_INTEGER PHYSICAL_ADDRESS, *PPHYSICAL_ADDRESS;
#define TIME LARGE_INTEGER
#define _TIME _LARGE_INTEGER
#define PTIME PLARGE_INTEGER
#define LowTime LowPart
#define HighTime HighPart
/* Used to store a non-float 8 byte aligned structure */
typedef struct _QUAD
{
@@ -1414,6 +1449,17 @@ typedef struct _QUAD
} DUMMYUNIONNAME;
} QUAD, *PQUAD, UQUAD, *PUQUAD;
#if (_WIN32_WINNT >= 0x0600) || (defined(__cplusplus) && defined(WINDOWS_ENABLE_CPLUSPLUS))
typedef CONST UCHAR *PCUCHAR;
typedef CONST USHORT *PCUSHORT;
typedef CONST ULONG *PCULONG;
typedef CONST UQUAD *PCUQUAD;
typedef CONST SCHAR *PCSCHAR;
#endif /* (/_WIN32_WINNT >= 0x0600) */
#if (_WIN32_WINNT >= 0x0600)
typedef CONST NTSTATUS *PCNTSTATUS;
#endif /* (/_WIN32_WINNT >= 0x0600) */
/* String Types */
typedef struct _STRING {
USHORT Length;
@@ -1528,6 +1574,8 @@ typedef struct _OBJECT_ATTRIBUTES64 {
} OBJECT_ATTRIBUTES64, *POBJECT_ATTRIBUTES64;
typedef CONST OBJECT_ATTRIBUTES64 *PCOBJECT_ATTRIBUTES64;
#define OBJ_HANDLE_TAGBITS 0x00000003L
/* Values for the Attributes member */
#define OBJ_INHERIT 0x00000002L
#define OBJ_PERMANENT 0x00000010L
@@ -1561,6 +1609,37 @@ typedef CONST OBJECT_ATTRIBUTES64 *PCOBJECT_ATTRIBUTES64;
#define RTL_INIT_OBJECT_ATTRIBUTES(n, a) \
RTL_CONSTANT_OBJECT_ATTRIBUTES(n, a)
#ifdef _MSC_VER
#pragma warning(push)
#pragma warning(disable:4214) /* Bit fields of other types than int */
#endif /* _MSC_VER */
typedef struct _RTL_BALANCED_NODE
{
_ANONYMOUS_UNION union
{
struct _RTL_BALANCED_NODE *Children[2];
_ANONYMOUS_STRUCT struct
{
struct _RTL_BALANCED_NODE *Left;
struct _RTL_BALANCED_NODE *Right;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
_ANONYMOUS_UNION union
{
UCHAR Red : 1;
UCHAR Balance : 2;
ULONG_PTR ParentValue;
} DUMMYUNIONNAME2;
} RTL_BALANCED_NODE, *PRTL_BALANCED_NODE;
#ifdef _MSC_VER
#pragma warning(pop)
#endif /* _MSC_VER */
#define RTL_BALANCED_NODE_RESERVED_PARENT_MASK 3
#define RTL_BALANCED_NODE_GET_PARENT_POINTER(Node) \
((PRTL_BALANCED_NODE)((Node)->ParentValue & \
~RTL_BALANCED_NODE_RESERVED_PARENT_MASK))
/* Product Types */
typedef enum _NT_PRODUCT_TYPE {
NtProductWinNt = 1,
@@ -1583,6 +1662,34 @@ typedef enum _WAIT_TYPE {
WaitAny
} WAIT_TYPE;
#ifndef MIDL_PASS
FORCEINLINE
VOID
ListEntry32To64(
_In_ PLIST_ENTRY32 ListEntry32,
_Out_ PLIST_ENTRY64 ListEntry64)
{
ListEntry64->Flink = ListEntry32->Flink;
ListEntry64->Blink = ListEntry32->Blink;
}
FORCEINLINE
VOID
ListEntry64To32(
_In_ PLIST_ENTRY64 ListEntry64,
_Out_ PLIST_ENTRY32 ListEntry32)
{
/* ASSERT without ASSERT or intrinsics ... */
if (((ListEntry64->Flink >> 32) != 0) ||
((ListEntry64->Blink >> 32) != 0))
{
(VOID)*(volatile LONG*)(LONG_PTR)-1;
}
ListEntry32->Flink = ListEntry64->Flink & 0xFFFFFFFF;
ListEntry32->Blink = ListEntry64->Blink & 0xFFFFFFFF;
}
#endif /* !MIDL_PASS */
#ifdef __cplusplus
} // extern "C"
#endif
+11
View File
@@ -666,8 +666,17 @@ typedef struct _TRUSTED_DOMAIN_FULL_INFORMATION {
} TRUSTED_DOMAIN_FULL_INFORMATION, *PTRUSTED_DOMAIN_FULL_INFORMATION;
#define RtlGenRandom SystemFunction036
#define RtlEncryptMemory SystemFunction040
#define RtlDecryptMemory SystemFunction041
BOOLEAN WINAPI RtlGenRandom(PVOID,ULONG);
NTSTATUS WINAPI RtlEncryptMemory(PVOID Memory, ULONG MemorySize, ULONG OptionFlags);
NTSTATUS WINAPI RtlDecryptMemory(PVOID Memory, ULONG MemorySize, ULONG OptionFlags);
#define RTL_ENCRYPT_MEMORY_SIZE 8
#define RTL_ENCRYPT_OPTION_SAME_PROCESS 0x00
#define RTL_ENCRYPT_OPTION_CROSS_PROCESS 0x01
#define RTL_ENCRYPT_OPTION_SAME_LOGON 0x02
NTSTATUS NTAPI LsaAddAccountRights(LSA_HANDLE,PSID,PLSA_UNICODE_STRING,ULONG);
NTSTATUS NTAPI LsaAddPrivilegesToAccount(LSA_HANDLE, PPRIVILEGE_SET);
@@ -690,6 +699,7 @@ NTSTATUS NTAPI LsaEnumerateAccounts(LSA_HANDLE,PLSA_ENUMERATION_HANDLE,PVOID*,
ULONG,PULONG);
NTSTATUS NTAPI LsaEnumerateAccountsWithUserRight(LSA_HANDLE,PLSA_UNICODE_STRING,
PVOID*,PULONG);
NTSTATUS NTAPI LsaEnumerateLogonSessions(PULONG,PLUID*);
NTSTATUS NTAPI LsaEnumeratePrivileges(LSA_HANDLE,PLSA_ENUMERATION_HANDLE,
PVOID*,ULONG,PULONG);
NTSTATUS NTAPI LsaEnumeratePrivilegesOfAccount(LSA_HANDLE,PPRIVILEGE_SET*);
@@ -699,6 +709,7 @@ NTSTATUS NTAPI LsaEnumerateTrustedDomainsEx(LSA_HANDLE,PLSA_ENUMERATION_HANDLE,
PVOID*,ULONG,PULONG);
NTSTATUS NTAPI LsaFreeMemory(PVOID);
NTSTATUS NTAPI LsaFreeReturnBuffer(PVOID);
NTSTATUS NTAPI LsaGetLogonSessionData(PLUID,PSECURITY_LOGON_SESSION_DATA*);
NTSTATUS NTAPI LsaGetQuotasForAccount(LSA_HANDLE,PQUOTA_LIMITS);
NTSTATUS NTAPI LsaGetRemoteUserName(PLSA_UNICODE_STRING, PLSA_UNICODE_STRING*,
PLSA_UNICODE_STRING*);
+47 -2
View File
@@ -18,6 +18,11 @@
import "oaidl.idl";
#ifndef __WIDL__
#define threading(model)
#endif
cpp_quote("#define NAVDIR_MIN 0")
cpp_quote("#define NAVDIR_UP 1")
cpp_quote("#define NAVDIR_DOWN 2")
cpp_quote("#define NAVDIR_LEFT 3")
@@ -26,6 +31,7 @@ cpp_quote("#define NAVDIR_NEXT 5")
cpp_quote("#define NAVDIR_PREVIOUS 6")
cpp_quote("#define NAVDIR_FIRSTCHILD 7")
cpp_quote("#define NAVDIR_LASTCHILD 8")
cpp_quote("#define NAVDIR_MAX 9")
cpp_quote("#define ROLE_SYSTEM_TITLEBAR 1")
cpp_quote("#define ROLE_SYSTEM_MENUBAR 2")
@@ -100,6 +106,45 @@ cpp_quote("#define SELFLAG_ADDSELECTION 0x08")
cpp_quote("#define SELFLAG_REMOVESELECTION 0x10")
cpp_quote("#define SELFLAG_VALID 0x1f")
cpp_quote("#ifndef STATE_SYSTEM_UNAVAILABLE")
cpp_quote("#define STATE_SYSTEM_NORMAL 0x00000000")
cpp_quote("#define STATE_SYSTEM_UNAVAILABLE 0x00000001")
cpp_quote("#define STATE_SYSTEM_SELECTED 0x00000002")
cpp_quote("#define STATE_SYSTEM_FOCUSED 0x00000004")
cpp_quote("#define STATE_SYSTEM_PRESSED 0x00000008")
cpp_quote("#define STATE_SYSTEM_CHECKED 0x00000010")
cpp_quote("#define STATE_SYSTEM_MIXED 0x00000020")
cpp_quote("#define STATE_SYSTEM_INDETERMINATE STATE_SYSTEM_MIXED")
cpp_quote("#define STATE_SYSTEM_READONLY 0x00000040")
cpp_quote("#define STATE_SYSTEM_HOTTRACKED 0x00000080")
cpp_quote("#define STATE_SYSTEM_DEFAULT 0x00000100")
cpp_quote("#define STATE_SYSTEM_EXPANDED 0x00000200")
cpp_quote("#define STATE_SYSTEM_COLLAPSED 0x00000400")
cpp_quote("#define STATE_SYSTEM_BUSY 0x00000800")
cpp_quote("#define STATE_SYSTEM_FLOATING 0x00001000")
cpp_quote("#define STATE_SYSTEM_MARQUEED 0x00002000")
cpp_quote("#define STATE_SYSTEM_ANIMATED 0x00004000")
cpp_quote("#define STATE_SYSTEM_INVISIBLE 0x00008000")
cpp_quote("#define STATE_SYSTEM_OFFSCREEN 0x00010000")
cpp_quote("#define STATE_SYSTEM_SIZEABLE 0x00020000")
cpp_quote("#define STATE_SYSTEM_MOVEABLE 0x00040000")
cpp_quote("#define STATE_SYSTEM_SELFVOICING 0x00080000")
cpp_quote("#define STATE_SYSTEM_FOCUSABLE 0x00100000")
cpp_quote("#define STATE_SYSTEM_SELECTABLE 0x00200000")
cpp_quote("#define STATE_SYSTEM_LINKED 0x00400000")
cpp_quote("#define STATE_SYSTEM_TRAVERSED 0x00800000")
cpp_quote("#define STATE_SYSTEM_MULTISELECTABLE 0x01000000")
cpp_quote("#define STATE_SYSTEM_EXTSELECTABLE 0x02000000")
cpp_quote("#define STATE_SYSTEM_ALERT_LOW 0x04000000")
cpp_quote("#define STATE_SYSTEM_ALERT_MEDIUM 0x08000000")
cpp_quote("#define STATE_SYSTEM_ALERT_HIGH 0x10000000")
cpp_quote("#define STATE_SYSTEM_PROTECTED 0x20000000")
cpp_quote("#define STATE_SYSTEM_VALID 0x7FFFFFFF")
cpp_quote("#endif")
cpp_quote("#ifndef STATE_SYSTEM_HASPOPUP")
cpp_quote("#define STATE_SYSTEM_HASPOPUP 0x40000000")
cpp_quote("#endif")
typedef GUID MSAAPROPID;
typedef enum AnnoScope
@@ -262,7 +307,8 @@ library Accessibility
interface IAccPropServices;
[
uuid(b5f8350b-0548-48b1-a6ee-88bd00b4a5e7)
uuid(b5f8350b-0548-48b1-a6ee-88bd00b4a5e7),
threading(apartment)
]
coclass CAccPropServices
{
@@ -270,7 +316,6 @@ library Accessibility
}
};
cpp_quote("DEFINE_GUID(LIBID_Accessibility, 0x1ea4dbf0, 0x3c3b, 0x11cf, 0x81, 0x0c, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);")
cpp_quote("DEFINE_GUID(CLSID_AccPropServices, 0xb5f8350b, 0x0548, 0x48b1, 0xa6, 0xee, 0x88, 0xbd, 0x00, 0xb4, 0xa5, 0xe7);")
cpp_quote("DEFINE_GUID(IIS_IsOleaccProxy, 0x902697fa, 0x80e4, 0x4560, 0x80, 0x2a, 0xa1, 0x3f, 0x22, 0xa6, 0x47, 0x09);")
+52
View File
@@ -0,0 +1,52 @@
/*
* Copyright 2011 Hans Leidekker for CodeWeavers
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef _PATCHAPI_H_
#define _PATCHAPI_H_
#ifdef __cplusplus
extern "C" {
#endif
#define APPLY_OPTION_FAIL_IF_EXACT 0x00000001
#define APPLY_OPTION_FAIL_IF_CLOSE 0x00000002
#define APPLY_OPTION_TEST_ONLY 0x00000004
#define APPLY_OPTION_VALID_FLAGS 0x00000007
typedef struct _PATCH_IGNORE_RANGE
{
ULONG OffsetInOldFile;
ULONG LengthInBytes;
} PATCH_IGNORE_RANGE, *PPATCH_IGNORE_RANGE;
typedef struct _PATCH_RETAIN_RANGE
{
ULONG OffsetInOldFile;
ULONG LengthInBytes;
ULONG OffsetInNewFile;
} PATCH_RETAIN_RANGE, *PPATCH_RETAIN_RANGE;
BOOL WINAPI ApplyPatchToFileA(LPCSTR,LPCSTR,LPCSTR,ULONG);
BOOL WINAPI ApplyPatchToFileW(LPCWSTR,LPCWSTR,LPCWSTR,ULONG);
#define ApplyPatchToFile WINELIB_NAME_AW(ApplyPatchToFile)
#ifdef __cplusplus
}
#endif
#endif /* _PATCHAPI_H_ */
+3
View File
@@ -802,7 +802,10 @@ cpp_quote("#define PKEYSTR_MAX (GUIDSTRING_MAX + 1 + PKEY_PIDSTR_MAX)")
cpp_quote("HRESULT WINAPI PSStringFromPropertyKey(REFPROPERTYKEY,LPWSTR,UINT);")
cpp_quote("HRESULT WINAPI PSPropertyKeyFromString(LPCWSTR,PROPERTYKEY*);")
cpp_quote("HRESULT WINAPI PSGetPropertyDescription(REFPROPERTYKEY,REFIID,void **);")
cpp_quote("HRESULT WINAPI PSGetPropertyDescriptionListFromString(LPCWSTR,REFIID,void **);")
cpp_quote("HRESULT WINAPI PSRefreshPropertySchema(void);")
cpp_quote("HRESULT WINAPI PSRegisterPropertySchema(LPCWSTR);")
cpp_quote("HRESULT WINAPI PSUnregisterPropertySchema(LPCWSTR);")
/* TODO: Add remainder of the C api here */
+32 -10
View File
@@ -611,16 +611,20 @@ extern "C" {
#define SPQ_SCAN_INFORM_USER 0x00000010
#define SPQ_SCAN_PRUNE_COPY_QUEUE 0x00000020
#define SPRDI_FIND_DUPS 0x00000001
#define SPSVCINST_TAGTOFRONT 0x00000001
#define SPSVCINST_ASSOCSERVICE 0x00000002
#define SPSVCINST_DELETEEVENTLOGENTRY 0x00000004
#define SPSVCINST_NOCLOBBER_DISPLAYNAME 0x00000008
#define SPSVCINST_NOCLOBBER_STARTTYPE 0x00000010
#define SPSVCINST_NOCLOBBER_ERRORCONTROL 0x00000020
#define SPSVCINST_NOCLOBBER_LOADORDERGROUP 0x00000040
#define SPSVCINST_NOCLOBBER_DEPENDENCIES 0x00000080
#define SPSVCINST_NOCLOBBER_DESCRIPTION 0x00000100
#define SPSVCINST_STOPSERVICE 0x00000200
#define SPSVCINST_TAGTOFRONT 0x00000001
#define SPSVCINST_ASSOCSERVICE 0x00000002
#define SPSVCINST_DELETEEVENTLOGENTRY 0x00000004
#define SPSVCINST_NOCLOBBER_DISPLAYNAME 0x00000008
#define SPSVCINST_NOCLOBBER_STARTTYPE 0x00000010
#define SPSVCINST_NOCLOBBER_ERRORCONTROL 0x00000020
#define SPSVCINST_NOCLOBBER_LOADORDERGROUP 0x00000040
#define SPSVCINST_NOCLOBBER_DEPENDENCIES 0x00000080
#define SPSVCINST_NOCLOBBER_DESCRIPTION 0x00000100
#define SPSVCINST_STOPSERVICE 0x00000200
#define SPSVCINST_CLOBBER_SECURITY 0x00000400
#define SPSVCINST_STARTSERVICE 0x00000800
#define SPWPT_SELECTDEVICE 0x00000001
#define SPWP_USE_DEVINFO_DATA 0x00000001
#define SRCINFO_PATH 1
@@ -2350,6 +2354,22 @@ SetupSetSourceListW(
WINSETUPAPI VOID WINAPI SetupTermDefaultQueueCallback(_In_ PVOID);
WINSETUPAPI BOOL WINAPI SetupTerminateFileLog(_In_ HSPFILELOG);
WINSETUPAPI
BOOL
WINAPI
SetupUninstallOEMInfA(
_In_ PCSTR InfFileName,
_In_ DWORD Flags,
_In_ PVOID Reserved);
WINSETUPAPI
BOOL
WINAPI
SetupUninstallOEMInfW(
_In_ PCWSTR InfFileName,
_In_ DWORD Flags,
_In_ PVOID Reserved);
WINSETUPAPI DWORD WINAPI StampFileSecurity(PCWSTR, PSECURITY_DESCRIPTOR);
@@ -2520,6 +2540,7 @@ WINSETUPAPI PSTR WINAPI UnicodeToMultiByte(PCWSTR lpUnicodeStr, UINT uCodePage);
#define SetupSetFileQueueAlternatePlatform SetupSetFileQueueAlternatePlatformW
#define SetupSetPlatformPathOverride SetupSetPlatformPathOverrideW
#define SetupSetSourceList SetupSetSourceListW
#define SetupUninstallOEMInf SetupUninstallOEMInfW
#else
#define PSP_FILE_CALLBACK PSP_FILE_CALLBACK_A
#define SetupAddInstallSectionToDiskSpaceList SetupAddInstallSectionToDiskSpaceListA
@@ -2642,6 +2663,7 @@ WINSETUPAPI PSTR WINAPI UnicodeToMultiByte(PCWSTR lpUnicodeStr, UINT uCodePage);
#define SetupSetFileQueueAlternatePlatform SetupSetFileQueueAlternatePlatformA
#define SetupSetPlatformPathOverride SetupSetPlatformPathOverrideA
#define SetupSetSourceList SetupSetSourceListA
#define SetupUninstallOEMInf SetupUninstallOEMInfA
#endif /* UNICODE */
#endif /* RC_INVOKED */
+3 -1
View File
@@ -466,6 +466,8 @@ typedef struct
#define FCIDM_SHVIEW_INSERT 0x701A
#define FCIDM_SHVIEW_UNDO 0x701B
#define FCIDM_SHVIEW_INSERTLINK 0x701C
#define FCIDM_SHVIEW_COPYTO 0x701E
#define FCIDM_SHVIEW_MOVETO 0x701F
#define FCIDM_SHVIEW_SELECTALL 0x7021
#define FCIDM_SHVIEW_INVERTSELECTION 0x7022
@@ -750,7 +752,7 @@ DECLARE_INTERFACE_(IShellFolderView, IUnknown)
STDMETHOD(RefreshObject) (THIS_ _In_ PITEMID_CHILD pidl, _Out_ UINT *puItem) PURE;
STDMETHOD(SetRedraw) (THIS_ BOOL bRedraw) PURE;
STDMETHOD(GetSelectedCount) (THIS_ _Out_ UINT *puSelected) PURE;
STDMETHOD(GetSelectedObjects) (THIS_ _Outptr_result_buffer_(*puItems) PCITEMID_CHILD **pppidl, _Out_ UINT *puItems) PURE;
STDMETHOD(GetSelectedObjects) (THIS_ _Outptr_result_buffer_(*puItems) PCUITEMID_CHILD **pppidl, _Out_ UINT *puItems) PURE;
STDMETHOD(IsDropOnSource) (THIS_ _In_opt_ IDropTarget *pDropTarget) PURE;
STDMETHOD(GetDragPoint) (THIS_ _Out_ POINT *ppt) PURE;
STDMETHOD(GetDropPoint) (THIS_ _Out_ POINT *ppt) PURE;
+34
View File
@@ -1862,6 +1862,40 @@ HRESULT WINAPI SHCreateStreamWrapper(LPBYTE,DWORD,DWORD,struct IStream**);
#endif /* NO_SHLWAPI_STREAM */
#ifndef NO_SHLWAPI_SHARED
// These functions are only included in this file starting with the Windows 7 platform SDK
HANDLE
WINAPI
SHAllocShared(
_In_opt_ const void *pvData,
_In_ DWORD dwSize,
_In_ DWORD dwDestinationProcessId
);
PVOID
WINAPI
SHLockShared(
_In_ HANDLE hData,
_In_ DWORD dwProcessId
);
BOOL
WINAPI
SHUnlockShared(
_In_ void *pvData
);
BOOL
WINAPI
SHFreeShared(
_In_ HANDLE hData,
_In_ DWORD dwProcessId
);
#endif /* NO_SHLWAPI_SHARED */
/* SHAutoComplete flags */
#define SHACF_DEFAULT 0x00000000
#define SHACF_FILESYSTEM 0x00000001
+151
View File
@@ -4040,3 +4040,154 @@ library ShellObjects
interface IShellItem2;
}
}
enum _OPPROGDLGF
{
OPPROGDLG_DEFAULT = 0,
OPPROGDLG_ENABLEPAUSE = 0x80,
OPPROGDLG_ALLOWUNDO = 0x100,
OPPROGDLG_DONTDISPLAYSOURCEPATH = 0x200,
OPPROGDLG_DONTDISPLAYDESTPATH = 0x400,
OPPROGDLG_NOMULTIDAYESTIMATES = 0x800,
OPPROGDLG_DONTDISPLAYLOCATIONS = 0x1000
};
typedef DWORD OPPROGDLGF;
enum _PDMODE
{
PDM_DEFAULT = 0,
PDM_RUN = 0x1,
PDM_PREFLIGHT = 0x2,
PDM_UNDOING = 0x4,
PDM_ERRORSBLOCKING = 0x8,
PDM_INDETERMINATE = 0x10
};
typedef DWORD PDMODE;
typedef enum PDOPSTATUS
{
PDOPS_RUNNING = 1,
PDOPS_PAUSED = 2,
PDOPS_CANCELLED = 3,
PDOPS_STOPPED = 4,
PDOPS_ERRORS = 5
} PDOPSTATUS;
typedef enum _SPACTION
{
SPACTION_NONE = 0,
SPACTION_MOVING = 1,
SPACTION_COPYING = 2,
SPACTION_RECYCLING = 3,
SPACTION_APPLYINGATTRIBS = 4,
SPACTION_DOWNLOADING = 5,
SPACTION_SEARCHING_INTERNET = 6,
SPACTION_CALCULATING = 7,
SPACTION_UPLOADING = 8,
SPACTION_SEARCHING_FILES = 9,
SPACTION_DELETING = 10,
SPACTION_RENAMING = 11,
SPACTION_FORMATTING = 12,
SPACTION_COPY_MOVING = 13
} SPACTION;
[
uuid(0C9FB851-E5C9-43EB-A370-F0677B13874C),
object,
pointer_default(unique)
]
interface IOperationsProgressDialog : IUnknown
{
HRESULT StartProgressDialog(
[in] HWND hwndOwner,
[in] OPPROGDLGF flags);
HRESULT StopProgressDialog();
HRESULT SetOperation(
[in] SPACTION action);
HRESULT SetMode(
[in] PDMODE mode);
HRESULT UpdateProgress(
[in] ULONGLONG ullPointsCurrent,
[in] ULONGLONG ullPointsTotal,
[in] ULONGLONG ullSizeCurrent,
[in] ULONGLONG ullSizeTotal,
[in] ULONGLONG ullItemsCurrent,
[in] ULONGLONG ullItemsTotal);
HRESULT UpdateLocations(
[in, optional] IShellItem *psiSource,
[in, optional] IShellItem *psiTarget,
[in, optional] IShellItem *psiItem);
HRESULT ResetTimer();
HRESULT PauseTimer();
HRESULT ResumeTimer();
HRESULT GetMilliseconds(
[out] ULONGLONG *pullElapsed,
[out] ULONGLONG *pullRemaining);
HRESULT GetOperationStatus(
[out] PDOPSTATUS *popstatus);
};
[
uuid(947aab5f-0a5c-4c13-b4d6-4bf7836fc9f8),
object,
pointer_default(unique)
]
interface IFileOperation : IUnknown
{
HRESULT Advise(
[in] IFileOperationProgressSink *pfops,
[out] DWORD *pdwCookie);
HRESULT Unadvise(
[in] DWORD dwCookie);
HRESULT SetOperationFlags(
[in] DWORD dwOperationFlags);
HRESULT SetProgressMessage(
[in] LPCWSTR pszMessage);
HRESULT SetProgressDialog(
[in] IOperationsProgressDialog *popd);
HRESULT SetProperties(
[in] IPropertyChangeArray *pproparray);
HRESULT SetOwnerWindow(
[in] HWND hwndOwner);
HRESULT ApplyPropertiesToItem(
[in] IShellItem *psiItem);
HRESULT ApplyPropertiesToItems(
[in] IUnknown *punkItems);
HRESULT RenameItem(
[in] IShellItem *psiItem,
[in] LPCWSTR pszNewName,
[in] IFileOperationProgressSink *pfopsItem);
HRESULT RenameItems(
[in] IUnknown *pUnkItems,
[in] LPCWSTR pszNewName);
HRESULT MoveItem(
[in] IShellItem *psiItem,
[in] IShellItem *psiDestinationFolder,
[in] LPCWSTR pszNewName,
[in] IFileOperationProgressSink *pfopsItem);
HRESULT MoveItems(
[in] IUnknown *punkItems,
[in] IShellItem *psiDestinationFolder);
HRESULT CopyItem(
[in] IShellItem *psiItem,
[in] IShellItem *psiDestinationFolder,
[in] LPCWSTR pszCopyName,
[in] IFileOperationProgressSink *pfopsItem);
HRESULT CopyItems(
[in] IUnknown *punkItems,
[in] IShellItem *psiDestinationFolder);
HRESULT DeleteItem(
[in] IShellItem *psiItem,
[in] IFileOperationProgressSink *pfopsItem);
HRESULT DeleteItems(
[in] IUnknown *punkItems);
HRESULT NewItem(
[in] IShellItem *psiDestinationFolder,
[in] DWORD dwFileAttributes,
[in] LPCWSTR pszName,
[in] LPCWSTR pszTemplateName,
[in] IFileOperationProgressSink *pfopsItem);
HRESULT PerformOperations();
HRESULT GetAnyOperationsAborted(
[out] BOOL *pfAnyOperationsAborted);
};
+3
View File
@@ -90,6 +90,9 @@
#define AO_OPTION_UNBIND 37
#define AO_OPTION_PROTECT 38
/* TCP connection options */
#define TCP_SOCKET_NODELAY 1
typedef struct IFEntry
{
ULONG if_index;
+3
View File
@@ -262,6 +262,9 @@ typedef struct _TDI_PROVIDER_INFO {
#define TDI_SERVICE_SEND_AND_DISCONNECT 0x00020000
#define TDI_SERVICE_DIRECT_ACCEPT 0x00040000
#define TDI_SERVICE_ACCEPT_LOCAL_ADDR 0x00080000
#define TDI_SERVICE_ADDRESS_SECURITY 0x00100000
#define TDI_SERVICE_PREPOST_RECVS 0x00200000
#define TDI_SERVICE_NO_PUSH 0x00400000
typedef struct _TDI_PROVIDER_RESOURCE_STATS {
ULONG ResourceId;
+73
View File
@@ -43,6 +43,48 @@ typedef struct _PROFILEINFOW
HANDLE hProfile;
} PROFILEINFOW, *LPPROFILEINFOW;
#if (WINVER >= 0x0502)
typedef enum _GPO_LINK {
GPLinkUnknown = 0,
GPLinkMachine,
GPLinkSite,
GPLinkDomain,
GPLinkOrganizationalUnit
} GPO_LINK, *PGPO_LINK;
typedef struct _GROUP_POLICY_OBJECTA {
DWORD dwOptions;
DWORD dwVersion;
LPSTR lpDSPath;
LPSTR lpFileSysPath;
LPSTR lpDisplayName;
CHAR szGPOName[50];
GPO_LINK GPOLink;
LPARAM lParam;
struct _GROUP_POLICY_OBJECTA *pNext;
struct _GROUP_POLICY_OBJECTA *pPrev;
LPSTR lpExtensions;
LPARAM lParam2;
LPSTR lpLink;
} GROUP_POLICY_OBJECTA, *PGROUP_POLICY_OBJECTA;
typedef struct _GROUP_POLICY_OBJECTW {
DWORD dwOptions;
DWORD dwVersion;
LPWSTR lpDSPath;
LPWSTR lpFileSysPath;
LPWSTR lpDisplayName;
WCHAR szGPOName[50];
GPO_LINK GPOLink;
LPARAM lParam;
struct _GROUP_POLICY_OBJECTW *pNext;
struct _GROUP_POLICY_OBJECTW *pPrev;
LPWSTR lpExtensions;
LPARAM lParam2;
LPWSTR lpLink;
} GROUP_POLICY_OBJECTW, *PGROUP_POLICY_OBJECTW;
#endif
/* begin private */
BOOL WINAPI InitializeProfiles (VOID);
BOOL WINAPI CreateUserProfileA (PSID, LPCSTR);
@@ -85,6 +127,27 @@ BOOL WINAPI ExpandEnvironmentStringsForUserA (HANDLE, LPCSTR, LPSTR, DWORD);
BOOL WINAPI ExpandEnvironmentStringsForUserW (HANDLE, LPCWSTR, LPWSTR, DWORD);
#endif
#if (WINVER >= 0x0502)
DWORD
WINAPI
GetAppliedGPOListA(
_In_ DWORD dwFlags,
_In_ LPCSTR pMachineName,
_In_ PSID pSidUser,
_In_ GUID *pGuidExtension,
_Out_ PGROUP_POLICY_OBJECTA *ppGPOList
);
DWORD
WINAPI
GetAppliedGPOListW(
_In_ DWORD dwFlags,
_In_ LPCWSTR pMachineName,
_In_ PSID pSidUser,
_In_ GUID *pGuidExtension,
_Out_ PGROUP_POLICY_OBJECTW *ppGPOList
);
#endif
HANDLE WINAPI EnterCriticalPolicySection (BOOL);
BOOL WINAPI LeaveCriticalPolicySection (HANDLE);
BOOL WINAPI RefreshPolicy (BOOL);
@@ -115,6 +178,11 @@ typedef LPPROFILEINFOW LPPROFILEINFO;
#if (WINVER >= 0x0500)
#define ExpandEnvironmentStringsForUser ExpandEnvironmentStringsForUserW
#endif
#if (WINVER >= 0x0502)
typedef GROUP_POLICY_OBJECTW GROUP_POLICY_OBJECT;
typedef PGROUP_POLICY_OBJECTW PGROUP_POLICY_OBJECT;
#define GetAppliedGPOList GetAppliedGPOListW
#endif
#else
typedef PROFILEINFOA PROFILEINFO;
typedef LPPROFILEINFOA LPPROFILEINFO;
@@ -136,6 +204,11 @@ typedef LPPROFILEINFOA LPPROFILEINFO;
#if (WINVER >= 0x0500)
#define ExpandEnvironmentStringsForUser ExpandEnvironmentStringsForUserA
#endif
#if (WINVER >= 0x0502)
typedef GROUP_POLICY_OBJECTA GROUP_POLICY_OBJECT;
typedef PGROUP_POLICY_OBJECTA PGROUP_POLICY_OBJECT;
#define GetAppliedGPOList GetAppliedGPOListA
#endif
#endif
#ifdef __cplusplus
+11
View File
@@ -1277,6 +1277,12 @@ typedef DWORD (WINAPI *APPLICATION_RECOVERY_CALLBACK)(PVOID);
#define MAKEINTATOM(i) (LPTSTR)((ULONG_PTR)((WORD)(i)))
#endif
typedef DWORD
(WINAPI *PFE_IMPORT_FUNC)(
_Out_writes_bytes_to_(*ulLength, *ulLength) PBYTE pbData,
_In_opt_ PVOID pvCallbackContext,
_Inout_ PULONG ulLength);
/* Functions */
#ifndef UNDER_CE
int APIENTRY WinMain(_In_ HINSTANCE, _In_opt_ HINSTANCE, _In_ LPSTR, _In_ int);
@@ -2718,6 +2724,8 @@ BOOL WINAPI MoveFileA(_In_ LPCSTR, _In_ LPCSTR);
BOOL WINAPI MoveFileW(_In_ LPCWSTR, _In_ LPCWSTR);
BOOL WINAPI MoveFileExA(_In_ LPCSTR, _In_opt_ LPCSTR, _In_ DWORD);
BOOL WINAPI MoveFileExW(_In_ LPCWSTR, _In_opt_ LPCWSTR, _In_ DWORD);
BOOL WINAPI MoveFileWithProgressA(_In_ LPCSTR, _In_opt_ LPCSTR, _In_opt_ LPPROGRESS_ROUTINE, _In_opt_ LPVOID, _In_ DWORD);
BOOL WINAPI MoveFileWithProgressW(_In_ LPCWSTR, _In_opt_ LPCWSTR, _In_opt_ LPPROGRESS_ROUTINE, _In_opt_ LPVOID, _In_ DWORD);
int WINAPI MulDiv(_In_ int, _In_ int, _In_ int);
BOOL WINAPI NotifyChangeEventLog(_In_ HANDLE, _In_ HANDLE);
BOOL WINAPI ObjectCloseAuditAlarmA(_In_ LPCSTR, _In_ PVOID, _In_ BOOL);
@@ -3142,6 +3150,7 @@ BOOL WINAPI WinLoadTrustProvider(GUID*);
BOOL WINAPI Wow64DisableWow64FsRedirection(PVOID*);
BOOLEAN WINAPI Wow64EnableWow64FsRedirection(_In_ BOOLEAN);
BOOL WINAPI Wow64RevertWow64FsRedirection(PVOID);
DWORD WINAPI WriteEncryptedFileRaw(_In_ PFE_IMPORT_FUNC, _In_opt_ PVOID, _In_ PVOID);
BOOL WINAPI WriteFile(HANDLE,LPCVOID,DWORD,LPDWORD,LPOVERLAPPED);
BOOL WINAPI WriteFileEx(HANDLE,LPCVOID,DWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE);
BOOL WINAPI WriteFileGather(HANDLE,FILE_SEGMENT_ELEMENT*,DWORD,LPDWORD,LPOVERLAPPED);
@@ -3371,6 +3380,7 @@ typedef PCACTCTXW PCACTCTX;
#define lstrlen lstrlenW
#define MoveFile MoveFileW
#define MoveFileEx MoveFileExW
#define MoveFileWithProgress MoveFileWithProgressW
#define ObjectCloseAuditAlarm ObjectCloseAuditAlarmW
#define ObjectDeleteAuditAlarm ObjectDeleteAuditAlarmW
#define ObjectOpenAuditAlarm ObjectOpenAuditAlarmW
@@ -3578,6 +3588,7 @@ typedef ENUMRESTYPEPROCA ENUMRESTYPEPROC;
#define lstrlen lstrlenA
#define MoveFile MoveFileA
#define MoveFileEx MoveFileExA
#define MoveFileWithProgress MoveFileWithProgressA
#define ObjectCloseAuditAlarm ObjectCloseAuditAlarmA
#define ObjectDeleteAuditAlarm ObjectDeleteAuditAlarmA
#define ObjectOpenAuditAlarm ObjectOpenAuditAlarmA
+15 -7
View File
@@ -228,7 +228,7 @@ typedef struct _KEY_EVENT_RECORD {
WORD wVirtualScanCode;
union {
WCHAR UnicodeChar;
CHAR AsciiChar;
CHAR AsciiChar;
} uChar;
DWORD dwControlKeyState;
}
@@ -236,18 +236,26 @@ typedef struct _KEY_EVENT_RECORD {
/* gcc's alignment is not what win32 expects */
PACKED
#endif
KEY_EVENT_RECORD;
KEY_EVENT_RECORD, *PKEY_EVENT_RECORD;
typedef struct _MOUSE_EVENT_RECORD {
COORD dwMousePosition;
DWORD dwButtonState;
DWORD dwControlKeyState;
DWORD dwEventFlags;
} MOUSE_EVENT_RECORD;
} MOUSE_EVENT_RECORD, *PMOUSE_EVENT_RECORD;
typedef struct _WINDOW_BUFFER_SIZE_RECORD { COORD dwSize; } WINDOW_BUFFER_SIZE_RECORD;
typedef struct _MENU_EVENT_RECORD { UINT dwCommandId; } MENU_EVENT_RECORD,*PMENU_EVENT_RECORD;
typedef struct _FOCUS_EVENT_RECORD { BOOL bSetFocus; } FOCUS_EVENT_RECORD;
typedef struct _WINDOW_BUFFER_SIZE_RECORD {
COORD dwSize;
} WINDOW_BUFFER_SIZE_RECORD, *PWINDOW_BUFFER_SIZE_RECORD;
typedef struct _MENU_EVENT_RECORD {
UINT dwCommandId;
} MENU_EVENT_RECORD, *PMENU_EVENT_RECORD;
typedef struct _FOCUS_EVENT_RECORD {
BOOL bSetFocus;
} FOCUS_EVENT_RECORD, *PFOCUS_EVENT_RECORD;
typedef struct _INPUT_RECORD {
WORD EventType;
@@ -258,7 +266,7 @@ typedef struct _INPUT_RECORD {
MENU_EVENT_RECORD MenuEvent;
FOCUS_EVENT_RECORD FocusEvent;
} Event;
} INPUT_RECORD,*PINPUT_RECORD;
} INPUT_RECORD, *PINPUT_RECORD;
#if (_WIN32_WINNT >= 0x0600)
typedef struct _CONSOLE_HISTORY_INFO {
+16
View File
@@ -1959,6 +1959,22 @@ static const WCHAR MS_ENH_RSA_AES_PROV_W[] = { 'M','i','c','r','o','s'
#endif
#define MS_ENH_RSA_AES_PROV WINELIB_NAME_AW(MS_ENH_RSA_AES_PROV_)
#define MS_ENH_RSA_AES_PROV_XP_A "Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)"
#if defined(__GNUC__)
# define MS_ENH_RSA_AES_PROV_XP_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \
'E','n','h','a','n','c','e','d',' ','R','S','A',' ','a','n','d',' ','A','E','S',' ',\
'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',' ',\
'(','P','r','o','t','o','t','y','p','e',')',0 }
#elif defined(_MSC_VER)
# define MS_ENH_RSA_AES_PROV_XP_W L"Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)"
#else
static const WCHAR MS_ENH_RSA_AES_PROV_XP_W[] = { 'M','i','c','r','o','s','o','f','t',' ',
'E','n','h','a','n','c','e','d',' ','R','S','A',' ','a','n','d',' ','A','E','S',' ',
'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',' ',
'(','P','r','o','t','o','t','y','p','e',')',0 };
#endif
#define MS_ENH_RSA_AES_PROV_XP WINELIB_NAME_AW(MS_ENH_RSA_AES_PROV_XP_)
/* Key Specs*/
#define AT_KEYEXCHANGE 1
#define AT_SIGNATURE 2
+655 -29
View File
File diff suppressed because it is too large Load Diff
+36
View File
@@ -1786,6 +1786,16 @@ HttpQueryInfoW(
#define HttpQueryInfo WINELIB_NAME_AW(HttpQueryInfo)
typedef enum {
COOKIE_STATE_UNKNOWN,
COOKIE_STATE_ACCEPT,
COOKIE_STATE_PROMPT,
COOKIE_STATE_LEASH,
COOKIE_STATE_DOWNGRADE,
COOKIE_STATE_REJECT,
COOKIE_STATE_MAX = COOKIE_STATE_REJECT
} InternetCookieState;
BOOLAPI InternetClearAllPerSiteCookieDecisions(VOID);
BOOLAPI
@@ -1814,6 +1824,7 @@ InternetEnumPerSiteCookieDecisionW(
#define INTERNET_COOKIE_IS_RESTRICTED 0x00000200
#define INTERNET_COOKIE_IE6 0x00000400
#define INTERNET_COOKIE_IS_LEGACY 0x00000800
#define INTERNET_COOKIE_HTTPONLY 0x00002000
BOOLAPI
InternetGetCookieExA(
@@ -2559,6 +2570,31 @@ InternetGetConnectedStateExW(
#define InternetGetConnectedStateEx WINELIB_NAME_AW(InternetGetConnectedStateEx)
typedef struct AutoProxyHelperVtbl
{
BOOL (WINAPI *IsResolvable)(LPSTR);
DWORD (WINAPI *GetIPAddress)(LPSTR, LPDWORD);
DWORD (WINAPI *ResolveHostName)(LPSTR, LPSTR, LPDWORD);
BOOL (WINAPI *IsInNet)(LPSTR, LPSTR, LPSTR);
BOOL (WINAPI *IsResolvableEx)(LPSTR);
DWORD (WINAPI *GetIPAddressEx)(LPSTR, LPDWORD);
DWORD (WINAPI *ResolveHostNameEx)(LPSTR, LPSTR, LPDWORD);
BOOL (WINAPI *IsInNetEx)(LPSTR, LPSTR);
DWORD (WINAPI *SortIpList)(LPSTR, LPSTR, LPDWORD);
} AutoProxyHelperVtbl;
typedef struct AutoProxyHelperFunctions
{
const struct AutoProxyHelperVtbl *lpVtbl;
} AutoProxyHelperFunctions;
typedef struct
{
DWORD dwStructSize;
LPSTR lpszScriptBuffer;
DWORD dwScriptBufferSize;
} AUTO_PROXY_SCRIPT_BUFFER, *LPAUTO_PROXY_SCRIPT_BUFFER;
BOOLAPI InternetInitializeAutoProxyDll(_In_ DWORD);
BOOLAPI
+14
View File
@@ -90,6 +90,7 @@ extern "C" {
#define FSCTL_READ_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM,17,METHOD_NEITHER,FILE_READ_DATA)
#define FSCTL_WRITE_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM,18,METHOD_NEITHER,FILE_WRITE_DATA)
#define FSCTL_GET_NTFS_VOLUME_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM,25,METHOD_BUFFERED,FILE_ANY_ACCESS)
#define FSCTL_GET_NTFS_FILE_RECORD CTL_CODE(FILE_DEVICE_FILE_SYSTEM,26,METHOD_BUFFERED,FILE_ANY_ACCESS)
#define FSCTL_GET_VOLUME_BITMAP CTL_CODE(FILE_DEVICE_FILE_SYSTEM,27,METHOD_NEITHER,FILE_ANY_ACCESS)
#define FSCTL_GET_RETRIEVAL_POINTERS CTL_CODE(FILE_DEVICE_FILE_SYSTEM,28,METHOD_NEITHER,FILE_ANY_ACCESS)
#define FSCTL_MOVE_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM,29,METHOD_BUFFERED,FILE_ANY_ACCESS)
@@ -556,6 +557,19 @@ typedef struct {
LARGE_INTEGER MftZoneStart;
LARGE_INTEGER MftZoneEnd;
} NTFS_VOLUME_DATA_BUFFER, *PNTFS_VOLUME_DATA_BUFFER;
typedef struct {
ULONG ByteCount;
USHORT MajorVersion;
USHORT MinorVersion;
} NTFS_EXTENDED_VOLUME_DATA, *PNTFS_EXTENDED_VOLUME_DATA;
typedef struct {
LARGE_INTEGER FileReferenceNumber;
} NTFS_FILE_RECORD_INPUT_BUFFER, *PNTFS_FILE_RECORD_INPUT_BUFFER;
typedef struct {
LARGE_INTEGER FileReferenceNumber;
ULONG FileRecordLength;
UCHAR FileRecordBuffer[1];
} NTFS_FILE_RECORD_OUTPUT_BUFFER, *PNTFS_FILE_RECORD_OUTPUT_BUFFER;
#define IsRecognizedPartition(t)\
(((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT_12))||\
+19 -12
View File
@@ -260,6 +260,8 @@ extern "C" {
#define C3_LEXICAL 1024
#define C3_ALPHA 32768
#define C3_NOTAPPLICABLE 0
#define C3_HIGHSURROGATE 0x0800
#define C3_LOWSURROGATE 0x1000
#define TIME_NOMINUTESORSECONDS 1
#define TIME_NOSECONDS 2
#define TIME_NOTIMEMARKER 4
@@ -528,18 +530,23 @@ enum SYSGEOCLASS {
GEOCLASS_NATION = 16,
GEOCLASS_REGION = 14
};
enum SYSGEOTYPE {
GEO_NATION = 0x0001,
GEO_LATITUDE = 0x0002,
GEO_LONGITUDE = 0x0003,
GEO_ISO2 = 0x0004,
GEO_ISO3 = 0x0005,
GEO_RFC1766 = 0x0006,
GEO_LCID = 0x0007,
GEO_FRIENDLYNAME = 0x0008,
GEO_OFFICIALNAME = 0x0009,
GEO_TIMEZONES = 0x000a,
GEO_OFFICIALLANGUAGES = 0x000b
/* Geographic Information types */
enum SYSGEOTYPE
{
GEO_NATION = 1,
GEO_LATITUDE,
GEO_LONGITUDE,
GEO_ISO2,
GEO_ISO3,
GEO_RFC1766,
GEO_LCID,
GEO_FRIENDLYNAME,
GEO_OFFICIALNAME,
GEO_TIMEZONES,
GEO_OFFICIALLANGUAGES,
GEO_ISO_UN_NUMBER,
GEO_PARENT
};
typedef struct _cpinfo {
+34 -20
View File
@@ -729,6 +729,26 @@ typedef struct _GROUP_AFFINITY {
#define RTL_CONST_CAST(type) (type)
#endif
#ifdef __cplusplus
#define DEFINE_ENUM_FLAG_OPERATORS(_ENUMTYPE) \
extern "C++" { \
inline _ENUMTYPE operator|(_ENUMTYPE a, _ENUMTYPE b) { return _ENUMTYPE(((int)a) | ((int)b)); } \
inline _ENUMTYPE &operator|=(_ENUMTYPE &a, _ENUMTYPE b) { return (_ENUMTYPE &)(((int &)a) |= ((int)b)); } \
inline _ENUMTYPE operator&(_ENUMTYPE a, _ENUMTYPE b) { return _ENUMTYPE(((int)a) & ((int)b)); } \
inline _ENUMTYPE &operator&=(_ENUMTYPE &a, _ENUMTYPE b) { return (_ENUMTYPE &)(((int &)a) &= ((int)b)); } \
inline _ENUMTYPE operator~(_ENUMTYPE a) { return _ENUMTYPE(~((int)a)); } \
inline _ENUMTYPE operator^(_ENUMTYPE a, _ENUMTYPE b) { return _ENUMTYPE(((int)a) ^ ((int)b)); } \
inline _ENUMTYPE &operator^=(_ENUMTYPE &a, _ENUMTYPE b) { return (_ENUMTYPE &)(((int &)a) ^= ((int)b)); } \
}
#else
#define DEFINE_ENUM_FLAG_OPERATORS(_ENUMTYPE)
#endif
#define COMPILETIME_OR_2FLAGS(a,b) ((UINT)(a)|(UINT)(b))
#define COMPILETIME_OR_3FLAGS(a,b,c) ((UINT)(a)|(UINT)(b)|(UINT)(c))
#define COMPILETIME_OR_4FLAGS(a,b,c,d) ((UINT)(a)|(UINT)(b)|(UINT)(c)|(UINT)(d))
#define COMPILETIME_OR_5FLAGS(a,b,c,d,e) ((UINT)(a)|(UINT)(b)|(UINT)(c)|(UINT)(d)|(UINT)(e))
/* Type Limits */
#define MINCHAR 0x80
#define MAXCHAR 0x7f
@@ -741,10 +761,15 @@ typedef struct _GROUP_AFFINITY {
#define MAXDWORD 0xffffffff
#define MAXLONGLONG (0x7fffffffffffffffLL)
/* Multiplication and Shift Operations. Note: we don't use inline
asm functions, the compiler can optimize this better. */
#define Int32x32To64(a,b) (((__int64)(long)(a))*((__int64)(long)(b)))
#define UInt32x32To64(a,b) ((unsigned __int64)(unsigned int)(a)*(unsigned __int64)(unsigned int)(b))
/* 32 to 64 bit multiplication. GCC is really bad at optimizing the native math */
#if defined(_M_IX86) && defined(__GNUC__) && \
!defined(MIDL_PASS)&& !defined(RC_INVOKED) && !defined(_M_CEE_PURE)
#define Int32x32To64(a,b) __emul(a,b)
#define UInt32x32To64(a,b) __emulu(a,b)
#else
#define Int32x32To64(a,b) (((__int64)(long)(a))*((__int64)(long)(b)))
#define UInt32x32To64(a,b) ((unsigned __int64)(unsigned int)(a)*(unsigned __int64)(unsigned int)(b))
#endif
#if defined(MIDL_PASS)|| defined(RC_INVOKED) || defined(_M_CEE_PURE)
/* Use native math */
@@ -1424,21 +1449,6 @@ typedef struct _GROUP_AFFINITY {
#define ACE_OBJECT_TYPE_PRESENT 0x00000001
#define ACE_INHERITED_OBJECT_TYPE_PRESENT 0x00000002
#ifdef __cplusplus
#define DEFINE_ENUM_FLAG_OPERATORS(ENUMTYPE) \
extern "C++" { \
inline ENUMTYPE operator | (ENUMTYPE a, ENUMTYPE b) { return ENUMTYPE(((int)a)|((int)b)); } \
inline ENUMTYPE operator |= (ENUMTYPE &a, ENUMTYPE b) { return (ENUMTYPE &)(((int &)a) |= ((int)b)); } \
inline ENUMTYPE operator & (ENUMTYPE a, ENUMTYPE b) { return ENUMTYPE(((int)a)&((int)b)); } \
inline ENUMTYPE operator &= (ENUMTYPE &a, ENUMTYPE b) { return (ENUMTYPE &)(((int &)a) &= ((int)b)); } \
inline ENUMTYPE operator ~ (ENUMTYPE a) { return (ENUMTYPE)(~((int)a)); } \
inline ENUMTYPE operator ^ (ENUMTYPE a, ENUMTYPE b) { return ENUMTYPE(((int)a)^((int)b)); } \
inline ENUMTYPE operator ^= (ENUMTYPE &a, ENUMTYPE b) { return (ENUMTYPE &)(((int &)a) ^= ((int)b)); } \
}
#else
# define DEFINE_ENUM_FLAG_OPERATORS(ENUMTYPE) /* */
#endif
/* also in ddk/ntifs.h */
#define COMPRESSION_FORMAT_NONE (0x0000)
#define COMPRESSION_FORMAT_DEFAULT (0x0001)
@@ -1704,6 +1714,10 @@ extern "C++" { \
#define THREAD_BASE_PRIORITY_MAX 2
#define THREAD_BASE_PRIORITY_MIN (-2)
#define THREAD_BASE_PRIORITY_IDLE (-15)
#define PROCESS_SET_LIMITED_INFORMATION 0x2000
#define THREAD_RESUME 0x1000
/*
* To prevent gcc compiler warnings, bracket these defines when initialising
* a SID_IDENTIFIER_AUTHORITY, eg.
@@ -2969,7 +2983,7 @@ typedef struct _FLOATING_SAVE_AREA {
DWORD ErrorSelector;
DWORD DataOffset;
DWORD DataSelector;
BYTE RegisterArea[80];
BYTE RegisterArea[SIZE_OF_80387_REGISTERS];
DWORD Cr0NpxState;
} FLOATING_SAVE_AREA, *PFLOATING_SAVE_AREA;
+11 -1
View File
@@ -595,6 +595,11 @@ typedef struct _FILE_MAILSLOT_SET_INFORMATION {
LARGE_INTEGER ReadTimeout;
} FILE_MAILSLOT_SET_INFORMATION, *PFILE_MAILSLOT_SET_INFORMATION;
typedef struct _FILE_PIPE_INFORMATION {
ULONG ReadMode;
ULONG CompletionMode;
} FILE_PIPE_INFORMATION, *PFILE_PIPE_INFORMATION;
typedef struct _FILE_PIPE_LOCAL_INFORMATION {
ULONG NamedPipeType;
ULONG NamedPipeConfiguration;
@@ -2172,7 +2177,7 @@ ULONG WINAPI RtlFindSetBitsAndClear(PRTL_BITMAP,ULONG,ULONG);
ULONG WINAPI RtlFindSetRuns(PCRTL_BITMAP,PRTL_BITMAP_RUN,ULONG,BOOLEAN);
BOOLEAN WINAPI RtlFirstFreeAce(PACL,PACE_HEADER *);
NTSTATUS WINAPI RtlFormatCurrentUserKeyPath(PUNICODE_STRING);
NTSTATUS WINAPI RtlFormatMessage(LPWSTR,UCHAR,BOOLEAN,BOOLEAN,BOOLEAN,va_list *,LPWSTR,ULONG);
NTSTATUS WINAPI RtlFormatMessage(PWSTR,ULONG,BOOLEAN,BOOLEAN,BOOLEAN,va_list *,PWSTR,ULONG,PULONG);
void WINAPI RtlFreeAnsiString(PANSI_STRING);
BOOLEAN WINAPI RtlFreeHandle(RTL_HANDLE_TABLE *,RTL_HANDLE *);
BOOLEAN WINAPI RtlFreeHeap(HANDLE,ULONG,PVOID);
@@ -2305,7 +2310,12 @@ BOOLEAN WINAPI RtlTimeToSecondsSince1970(const LARGE_INTEGER *,LPDWORD);
BOOLEAN WINAPI RtlTimeToSecondsSince1980(const LARGE_INTEGER *,LPDWORD);
BOOL WINAPI RtlTryEnterCriticalSection(RTL_CRITICAL_SECTION *);
#ifdef __REACTOS__
ULONGLONG __fastcall RtlUlonglongByteSwap(ULONGLONG);
#define RtlUlonglongByteSwap(_x) _byteswap_uint64((_x))
#else
ULONGLONG __cdecl RtlUlonglongByteSwap(ULONGLONG);
#endif
DWORD WINAPI RtlUnicodeStringToAnsiSize(const UNICODE_STRING*);
NTSTATUS WINAPI RtlUnicodeStringToAnsiString(PANSI_STRING,PCUNICODE_STRING,BOOLEAN);
NTSTATUS WINAPI RtlUnicodeStringToInteger(const UNICODE_STRING *,ULONG,ULONG *);
-4
View File
@@ -4280,8 +4280,6 @@ BOOL WINAPI DragDetect(_In_ HWND, _In_ POINT);
DWORD WINAPI DragObject(_In_ HWND, _In_ HWND, _In_ UINT, _In_ ULONG_PTR, _In_opt_ HCURSOR);
BOOL WINAPI DrawAnimatedRects(_In_opt_ HWND, _In_ int, _In_ LPCRECT, _In_ LPCRECT);
BOOL WINAPI DrawCaption(_In_ HWND, _In_ HDC, _In_ LPCRECT, _In_ UINT);
BOOL WINAPI DrawCaptionTempA(HWND,HDC,const RECT*,HFONT,HICON,LPCSTR,UINT);
BOOL WINAPI DrawCaptionTempW(HWND,HDC,const RECT*,HFONT,HICON,LPCWSTR,UINT);
BOOL WINAPI DrawEdge(_In_ HDC, _Inout_ LPRECT, _In_ UINT, _In_ UINT);
BOOL WINAPI DrawFocusRect(_In_ HDC, _In_ LPCRECT);
BOOL WINAPI DrawFrameControl(_In_ HDC, _Inout_ LPRECT, _In_ UINT, _In_ UINT);
@@ -5434,7 +5432,6 @@ typedef MONITORINFOEXW MONITORINFOEX, *LPMONITORINFOEX;
#define DlgDirListComboBox DlgDirListComboBoxW
#define DlgDirSelectComboBoxEx DlgDirSelectComboBoxExW
#define DlgDirSelectEx DlgDirSelectExW
#define DrawCaptionTemp DrawCaptionTempW
#define DrawState DrawStateW
#define DrawText DrawTextW
#define DrawTextEx DrawTextExW
@@ -5601,7 +5598,6 @@ typedef MONITORINFOEXA MONITORINFOEX, *LPMONITORINFOEX;
#define DlgDirListComboBox DlgDirListComboBoxA
#define DlgDirSelectComboBoxEx DlgDirSelectComboBoxExA
#define DlgDirSelectEx DlgDirSelectExA
#define DrawCaptionTemp DrawCaptionTempA
#define DrawState DrawStateA
#define DrawText DrawTextA
#define DrawTextEx DrawTextExA
+136
View File
@@ -0,0 +1,136 @@
/*
* ReactOS shlwapi
*
* Copyright 2009 Andrew Hill <ash77 at domain reactos.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __BROWSEUI_UNDOC_H
#define __BROWSEUI_UNDOC_H
#ifdef __cplusplus
extern "C" {
#endif /* defined(__cplusplus) */
typedef struct IEThreadParamBlock
{
long offset0;
DWORD dwFlags;
long offset8;
IUnknown * offsetC;
long offset10;
IUnknown * offset14;
LPITEMIDLIST directoryPIDL; // 0x18
char offset1C[0x70-0x1C]; // unknown contents -- 0x1C..0x6c
IUnknown * offset70;
long offset74; // unknown contents
IUnknown * offset78;
LPITEMIDLIST offset7C;
LPITEMIDLIST offset80;
LONG offset84;
LONG offset88;
LONG offset8C;
LONG offset90;
LONG offset94;
LONG offset98;
LONG offset9C;
LONG offsetA0;
char offsetA4[0xD8-0xA4]; // unknown contents -- 0xA4..0xD8
LONG offsetD8;
char offsetDC[0xF8-0xDC]; // unknown contents -- 0xDC..0xF8
IUnknown * offsetF8; // instance explorer
LONG offsetFC; // unknown contents
} IE_THREAD_PARAM_BLOCK, *PIE_THREAD_PARAM_BLOCK;
typedef struct ExplorerCommandLineParseResults
{
LPWSTR strPath;
LPITEMIDLIST pidlPath;
DWORD dwFlags;
DWORD offsetC;
DWORD offset10;
DWORD offset14;
DWORD offset18;
DWORD offset1C;
LPITEMIDLIST pidlRoot;
DWORD offset24;
DWORD offset28;
DWORD offset2C;
DWORD offset30;
GUID guidInproc;
} EXPLORER_CMDLINE_PARSE_RESULTS, *PEXPLORER_CMDLINE_PARSE_RESULTS;
#define SH_EXPLORER_CMDLINE_FLAG_ONE 0x00000001
#define SH_EXPLORER_CMDLINE_FLAG_S 0x00000002
// unknown/unused 0x00000004
#define SH_EXPLORER_CMDLINE_FLAG_E 0x00000008
// unknown/unused 0x00000010
// unknown/unused 0x00000020
#define SH_EXPLORER_CMDLINE_FLAG_SELECT 0x00000040
#define SH_EXPLORER_CMDLINE_FLAG_EMBED 0x00000080
// unknown/unused 0x00000100
#define SH_EXPLORER_CMDLINE_FLAG_IDLIST 0x00000200
#define SH_EXPLORER_CMDLINE_FLAG_INPROC 0x00000400
// unknown/unused 0x00000800
#define SH_EXPLORER_CMDLINE_FLAG_NOUI 0x00001000
// unknown/unused 0x00002000
#define SH_EXPLORER_CMDLINE_FLAG_N 0x00004000
// unknown/unused 0x00008000
// unknown/unused 0x00010000
#define SH_EXPLORER_CMDLINE_FLAG_SEPARATE 0x00020000
// unknown/unused 0x00040000
// unknown/unused 0x00080000
// unknown/unused 0x00100000
// unknown/unused 0x00200000
// unknown/unused 0x00400000
// unknown/unused 0x00800000
// unknown/unused 0x01000000
#define SH_EXPLORER_CMDLINE_FLAG_STRING 0x02000000
#define WM_EXPLORER_OPEN_NEW_WINDOW (WM_USER+11)
#define WM_EXPLORER_1037 (WM_USER+13)
void WINAPI InitOCHostClass(long param8);
long WINAPI SHOpenFolderWindow(PIE_THREAD_PARAM_BLOCK parameters);
void WINAPI SHCreateSavedWindows(void);
BOOL WINAPI SHCreateFromDesktop(PEXPLORER_CMDLINE_PARSE_RESULTS parseResults);
UINT WINAPI SHExplorerParseCmdLine(PEXPLORER_CMDLINE_PARSE_RESULTS pParseResults);
void WINAPI UEMRegisterNotify(long param8, long paramC);
HRESULT WINAPI SHCreateBandForPidl(LPCITEMIDLIST param8, IUnknown *paramC, BOOL param10);
HRESULT WINAPI SHPidlFromDataObject(IDataObject *param8, long *paramC, long param10, FILEDESCRIPTORW *param14);
long WINAPI IDataObject_GetDeskBandState(long param8);
PIE_THREAD_PARAM_BLOCK WINAPI SHCreateIETHREADPARAM(long param8, long paramC, IUnknown *param10, IUnknown *param14);
PIE_THREAD_PARAM_BLOCK WINAPI SHCloneIETHREADPARAM(PIE_THREAD_PARAM_BLOCK param);
long WINAPI SHParseIECommandLine(long param8, long paramC);
void WINAPI SHDestroyIETHREADPARAM(PIE_THREAD_PARAM_BLOCK param);
BOOL WINAPI SHOnCWMCommandLine(HANDLE hSharedInfo);
LPITEMIDLIST WINAPI Channel_GetFolderPidl(void);
IUnknown *WINAPI ChannelBand_Create(LPITEMIDLIST pidl);
HRESULT WINAPI Channels_SetBandInfoSFB(IUnknown *param8);
HRESULT WINAPI IUnknown_SetBandInfoSFB(IUnknown *param8, long paramC);
HRESULT WINAPI Channel_QuickLaunch(void);
HRESULT WINAPI SHGetNavigateTarget(long param8, long paramC, long param10, long param14);
HRESULT WINAPI GetInfoTip(IUnknown *param8, long paramC, LPTSTR *param10, long cchMax);
HRESULT WINAPI SHEnumClassesOfCategories(long param8, long paramC, long param10, long param14, long param18);
HRESULT WINAPI SHWriteClassesOfCategories(long param8, long paramC, long param10, long param14, long param18, long param1C, long param20);
BOOL WINAPI SHIsExplorerBrowser();
HRESULT WINAPI SHOpenNewFrame(LPITEMIDLIST pidl, IUnknown *paramC, long param10, DWORD dwFlags);
#ifdef __cplusplus
} /* extern "C" */
#endif /* defined(__cplusplus) */
#endif /* __BROWSEUI_UNDOC_H */
+84
View File
@@ -0,0 +1,84 @@
/*
* ReactOS undocumented shell interface
*
* Copyright 2009 Andrew Hill <ash77 at domain reactos.org>
* Copyright 2013 Dominik Hornung
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __COMCTL32_UNDOC__H
#define __COMCTL32_UNDOC__H
#ifdef __cplusplus
extern "C" {
#endif /* defined(__cplusplus) */
typedef struct tagCREATEMRULISTA
{
DWORD cbSize;
DWORD nMaxItems;
DWORD dwFlags;
HKEY hKey;
LPCSTR lpszSubKey;
PROC lpfnCompare;
} CREATEMRULISTA, *LPCREATEMRULISTA;
typedef struct tagCREATEMRULISTW
{
DWORD cbSize;
DWORD nMaxItems;
DWORD dwFlags;
HKEY hKey;
LPCWSTR lpszSubKey;
PROC lpfnCompare;
} CREATEMRULISTW, *LPCREATEMRULISTW;
#define MRU_STRING 0x0
#define MRU_BINARY 0x1
#define MRU_CACHEWRITE 0x2
HANDLE WINAPI CreateMRUListW(LPCREATEMRULISTW);
HANDLE WINAPI CreateMRUListA(LPCREATEMRULISTA);
INT WINAPI AddMRUData(HANDLE,LPCVOID,DWORD);
INT WINAPI FindMRUData(HANDLE,LPCVOID,DWORD,LPINT);
VOID WINAPI FreeMRUList(HANDLE);
INT WINAPI AddMRUStringW(HANDLE hList, LPCWSTR lpszString);
INT WINAPI AddMRUStringA(HANDLE hList, LPCSTR lpszString);
BOOL WINAPI DelMRUString(HANDLE hList, INT nItemPos);
INT WINAPI FindMRUStringW(HANDLE hList, LPCWSTR lpszString, LPINT lpRegNum);
INT WINAPI FindMRUStringA(HANDLE hList, LPCSTR lpszString, LPINT lpRegNum);
HANDLE WINAPI CreateMRUListLazyW(const CREATEMRULISTW *lpcml, DWORD dwParam2,
DWORD dwParam3, DWORD dwParam4);
HANDLE WINAPI CreateMRUListLazyA(const CREATEMRULISTA *lpcml, DWORD dwParam2,
DWORD dwParam3, DWORD dwParam4);
INT WINAPI EnumMRUListW(HANDLE hList, INT nItemPos, LPVOID lpBuffer,
DWORD nBufferSize);
INT WINAPI EnumMRUListA(HANDLE hList, INT nItemPos, LPVOID lpBuffer,
DWORD nBufferSize);
#ifdef UNICODE
typedef CREATEMRULISTW CREATEMRULIST, *PCREATEMRULIST;
#define CreateMRUList CreateMRUListW
#else
typedef CREATEMRULISTA CREATEMRULIST, *PCREATEMRULIST;
#define CreateMRUList CreateMRUListA
#endif
#ifdef __cplusplus
} /* extern "C" */
#endif /* defined(__cplusplus) */
#endif // __COMCTL32_UNDOC__H
+27
View File
@@ -0,0 +1,27 @@
/*
* newdevp.h
*
* Private header for newdev.dll
*
*/
#ifndef __NEWDEVP__H
#define __NEWDEVP__H
BOOL
WINAPI
DevInstallW(
IN HWND hWndParent,
IN HINSTANCE hInstance,
IN LPCWSTR InstanceId,
IN INT Show);
BOOL
WINAPI
InstallDevInst(
IN HWND hWndParent,
IN LPCWSTR InstanceId,
IN BOOL bUpdate,
OUT LPDWORD lpReboot);
#endif /* __NEWDEVP__H */
+2 -2
View File
@@ -15,11 +15,11 @@
CTL_CODE(FILE_DEVICE_KSEC, 0x02, METHOD_BUFFERED, FILE_ANY_ACCESS)
// 3: 0x39000E - called from SystemFunction040 aka RtlEncryptMemory with OptionFlags == 0
#define IOCTL_KSEC_ENCRYPT_PROCESS \
#define IOCTL_KSEC_ENCRYPT_SAME_PROCESS \
CTL_CODE(FILE_DEVICE_KSEC, 0x03, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
// 4: 0x390012 - called from SystemFunction041 aka RtlDecryptMemory with OptionFlags == 0
#define IOCTL_KSEC_DECRYPT_PROCESS \
#define IOCTL_KSEC_DECRYPT_SAME_PROCESS \
CTL_CODE(FILE_DEVICE_KSEC, 0x04, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
// 5: 0x390016 - called from SystemFunction040 aka RtlEncryptMemory with OptionFlags == 1
+195 -65
View File
@@ -261,42 +261,58 @@ typedef struct _DEVPROPKEY {
interface pnp
{
/* Function 0 */
DWORD PNP_Disconnect(
DWORD
__stdcall
PNP_Disconnect(
[in] handle_t hBinding); /* FIXME */
/* Function 1 */
DWORD PNP_Connect(
DWORD
__stdcall
PNP_Connect(
[in] handle_t hBinding); /* FIXME */
/* Function 2 */
DWORD PNP_GetVersion(
DWORD
__stdcall
PNP_GetVersion(
[in] handle_t hBinding,
[out] WORD *pVersion);
/* Function 3 */
DWORD PNP_GetGlobalState(
DWORD
__stdcall
PNP_GetGlobalState(
[in] handle_t hBinding,
[out] DWORD *pulState,
[in] DWORD ulFlags);
/* Function 4 */
DWORD PNP_InitDetection(
DWORD
__stdcall
PNP_InitDetection(
[in] handle_t hBinding);
/* Function 5 */
DWORD PNP_ReportLogOn(
DWORD
__stdcall
PNP_ReportLogOn(
[in] handle_t hBinding,
[in] BOOL Admin,
[in] DWORD ProcessId);
/* Function 6 */
DWORD PNP_ValidateDeviceInstance(
DWORD
__stdcall
PNP_ValidateDeviceInstance(
[in] handle_t hBinding,
[in, string, ref] LPWSTR pDeviceID,
[in] DWORD ulFlags);
/* Function 7 */
DWORD PNP_GetRootDeviceInstance(
DWORD
__stdcall
PNP_GetRootDeviceInstance(
[in] handle_t hBinding,
[out, string, size_is(ulLength)] LPWSTR pDeviceID,
[in] PNP_RPC_STRING_LEN ulLength);
@@ -305,7 +321,9 @@ interface pnp
cpp_quote("#define PNP_GET_PARENT_DEVICE_INSTANCE 0x1")
cpp_quote("#define PNP_GET_CHILD_DEVICE_INSTANCE 0x2")
cpp_quote("#define PNP_GET_SIBLING_DEVICE_INSTANCE 0x3")
DWORD PNP_GetRelatedDeviceInstance(
DWORD
__stdcall
PNP_GetRelatedDeviceInstance(
[in] handle_t hBinding,
[in] DWORD ulRelationship,
[in, string, ref] LPWSTR pDeviceID,
@@ -316,7 +334,9 @@ interface pnp
/* Function 9 */
cpp_quote("#define PNP_ENUMERATOR_SUBKEYS 0x1")
cpp_quote("#define PNP_CLASS_SUBKEYS 0x2")
DWORD PNP_EnumerateSubKeys(
DWORD
__stdcall
PNP_EnumerateSubKeys(
[in] handle_t hBinding,
[in] DWORD ulBranch,
[in] DWORD ulIndex,
@@ -326,7 +346,9 @@ interface pnp
[in] DWORD ulFlags);
/* Function 10 */
DWORD PNP_GetDeviceList(
DWORD
__stdcall
PNP_GetDeviceList(
[in] handle_t hBinding,
[in, string, unique] LPWSTR pszFilter,
[out, size_is(*pulLength), length_is(*pulLength)] LPWSTR Buffer,
@@ -334,21 +356,27 @@ interface pnp
[in] DWORD ulFlags);
/* Function 11 */
DWORD PNP_GetDeviceListSize(
DWORD
__stdcall
PNP_GetDeviceListSize(
[in] handle_t hBinding,
[in, string, unique] LPWSTR pszFilter,
[out] PNP_RPC_BUFFER_SIZE *pulLen,
[in] DWORD ulFlags);
/* Function 12 */
DWORD PNP_GetDepth(
DWORD
__stdcall
PNP_GetDepth(
[in] handle_t hBinding,
[in, string, ref] LPWSTR pszDeviceID,
[out] DWORD *pulDepth,
[in] DWORD ulFlags);
/* Function 13 */
DWORD PNP_GetDeviceRegProp(
DWORD
__stdcall
PNP_GetDeviceRegProp(
[in] handle_t hBinding,
[in, string, ref] LPWSTR pDeviceID,
[in] DWORD ulProperty,
@@ -359,7 +387,9 @@ interface pnp
[in] DWORD ulFlags);
/* Function 14 */
DWORD PNP_SetDeviceRegProp(
DWORD
__stdcall
PNP_SetDeviceRegProp(
[in] handle_t hBinding,
[in, string, ref] LPWSTR pDeviceId,
[in] DWORD ulProperty,
@@ -369,21 +399,27 @@ interface pnp
[in] DWORD ulFlags);
/* Function 15 */
DWORD PNP_GetClassInstance(
DWORD
__stdcall
PNP_GetClassInstance(
[in] handle_t hBinding,
[in, string, ref] LPWSTR pDeviceId,
[out, string, size_is(ulLength)] LPWSTR pszClassInstance,
[in] PNP_RPC_STRING_LEN ulLength);
/* Function 16 */
DWORD PNP_CreateKey(
DWORD
__stdcall
PNP_CreateKey(
[in] handle_t hBinding,
[in, string, ref] LPWSTR pszSubKey,
[in] DWORD samDesired,
[in] DWORD ulFlags);
/* Function 17 */
DWORD PNP_DeleteRegistryKey(
DWORD
__stdcall
PNP_DeleteRegistryKey(
[in] handle_t hBinding,
[in, string, ref] LPWSTR pszDeviceID,
[in, string, ref] LPWSTR pszParentKey,
@@ -391,13 +427,17 @@ interface pnp
[in] DWORD ulFlags);
/* Function 18 */
DWORD PNP_GetClassCount(
DWORD
__stdcall
PNP_GetClassCount(
[in] handle_t hBinding,
[out] DWORD *pulClassCount,
[in] DWORD ulFlags);
/* Function 19 */
DWORD PNP_GetClassName(
DWORD
__stdcall
PNP_GetClassName(
[in] handle_t hBinding,
[in, string, ref] LPWSTR pszClassGuid,
[out, string, size_is(*pulLength)] LPWSTR Buffer,
@@ -405,13 +445,17 @@ interface pnp
[in] DWORD ulFlags);
/* Function 20 */
DWORD PNP_DeleteClassKey(
DWORD
__stdcall
PNP_DeleteClassKey(
[in] handle_t hBinding,
[in, string, ref] LPWSTR pszClassGuid,
[in] DWORD ulFlags);
/* Function 21 */
DWORD PNP_GetInterfaceDeviceAlias(
DWORD
__stdcall
PNP_GetInterfaceDeviceAlias(
[in] handle_t hBinding,
[in, string, ref] LPWSTR pszInterfaceDevice,
[in] GUID *AliasInterfaceGuid,
@@ -421,7 +465,9 @@ interface pnp
[in] DWORD ulFlags);
/* Function 22 */
DWORD PNP_GetInterfaceDeviceList(
DWORD
__stdcall
PNP_GetInterfaceDeviceList(
[in] handle_t hBinding,
[in] GUID *InterfaceGuid,
[in, string, unique] LPWSTR pszDeviceID,
@@ -430,7 +476,9 @@ interface pnp
[in] DWORD ulFlags);
/* Function 23 */
DWORD PNP_GetInterfaceDeviceListSize(
DWORD
__stdcall
PNP_GetInterfaceDeviceListSize(
[in] handle_t hBinding,
[out] PNP_RPC_BUFFER_SIZE *pulLen,
[in] GUID *InterfaceGuid,
@@ -438,7 +486,9 @@ interface pnp
[in] DWORD ulFlags);
/* Function 24 */
DWORD PNP_RegisterDeviceClassAssociation(
DWORD
__stdcall
PNP_RegisterDeviceClassAssociation(
[in] handle_t hBinding,
[in, string, unique] LPWSTR pszDeviceID,
[in] GUID *InterfaceGuid,
@@ -449,13 +499,17 @@ interface pnp
[in] DWORD ulFlags);
/* Function 25 */
DWORD PNP_UnregisterDeviceClassAssociation(
DWORD
__stdcall
PNP_UnregisterDeviceClassAssociation(
[in] handle_t hBinding,
[in, string, unique] LPWSTR pszInterfaceDevice,
[in] DWORD ulFlags);
/* Function 26 */
DWORD PNP_GetClassRegProp(
DWORD
__stdcall
PNP_GetClassRegProp(
[in] handle_t hBinding,
[in, string, ref] LPWSTR pszClassGuid,
[in] DWORD ulProperty,
@@ -466,7 +520,9 @@ interface pnp
[in] DWORD ulFlags);
/* Function 27 */
DWORD PNP_SetClassRegProp(
DWORD
__stdcall
PNP_SetClassRegProp(
[in] handle_t hBinding,
[in, string, ref] LPWSTR pszClassGuid,
[in] DWORD ulProperty,
@@ -476,7 +532,9 @@ interface pnp
[in] DWORD ulFlags);
/* Function 28 */
DWORD PNP_CreateDevInst(
DWORD
__stdcall
PNP_CreateDevInst(
[in] handle_t hBinding,
[in, out, string, size_is(ulLength)] LPWSTR pszDeviceID,
[in, string, ref] LPWSTR pszParentDeviceID,
@@ -489,7 +547,9 @@ interface pnp
cpp_quote("#define PNP_DEVINST_ENABLE 0x4")
cpp_quote("#define PNP_DEVINST_DISABLE 0x5")
cpp_quote("#define PNP_DEVINST_REENUMERATE 0x7")
DWORD PNP_DeviceInstanceAction(
DWORD
__stdcall
PNP_DeviceInstanceAction(
[in] handle_t hBinding,
[in] DWORD ulAction,
[in] DWORD ulFlags,
@@ -497,7 +557,9 @@ interface pnp
[in, string, unique] LPWSTR pszDeviceInstance2);
/* Function 30 */
DWORD PNP_GetDeviceStatus(
DWORD
__stdcall
PNP_GetDeviceStatus(
[in] handle_t hBinding,
[in, string, unique] LPWSTR pDeviceID,
[out] DWORD *pulStatus,
@@ -505,14 +567,18 @@ interface pnp
[in] DWORD ulFlags);
/* Function 31 */
DWORD PNP_SetDeviceProblem(
DWORD
__stdcall
PNP_SetDeviceProblem(
[in] handle_t hBinding,
[in, string, unique] LPWSTR pDeviceID,
[in] DWORD ulProblem,
[in] DWORD ulFlags);
/* Function 32 */
DWORD PNP_DisableDevInst(
DWORD
__stdcall
PNP_DisableDevInst(
[in] handle_t hBinding,
[in, string, unique] LPWSTR pDeviceID,
[in, out, unique] PPNP_VETO_TYPE pVetoType,
@@ -521,26 +587,34 @@ interface pnp
[in] DWORD ulFlags);
/* Function 33 */
DWORD PNP_UninstallDevInst(
DWORD
__stdcall
PNP_UninstallDevInst(
[in] handle_t hBinding,
[in, string, unique] LPWSTR pDeviceID,
[in] DWORD ulFlags);
/* Function 34 */
DWORD PNP_AddID(
DWORD
__stdcall
PNP_AddID(
[in] handle_t hBinding,
[in, string, unique] LPWSTR pszDeviceID,
[in, string, ref] LPWSTR pszID,
[in] DWORD ulFlags);
/* Function 35 */
DWORD PNP_RegisterDriver(
DWORD
__stdcall
PNP_RegisterDriver(
[in] handle_t hBinding,
[in, string, ref] LPWSTR pszDeviceID,
[in] DWORD ulFlags);
/* Function 36 */
DWORD PNP_QueryRemove(
DWORD
__stdcall
PNP_QueryRemove(
[in] handle_t hBinding,
[in, string, ref] LPWSTR pszDeviceID,
[in, out, unique] PPNP_VETO_TYPE pVetoType,
@@ -549,7 +623,9 @@ interface pnp
[in] DWORD ulFlags);
/* Function 37 */
DWORD PNP_RequestDeviceEject(
DWORD
__stdcall
PNP_RequestDeviceEject(
[in] handle_t hBinding,
[in, string, ref] LPWSTR pszDeviceID,
[in, out, unique] PPNP_VETO_TYPE pVetoType,
@@ -558,18 +634,24 @@ interface pnp
[in] DWORD ulFlags);
/* Function 38 */
DWORD PNP_IsDockStationPresent(
DWORD
__stdcall
PNP_IsDockStationPresent(
[in] handle_t hBinding,
[in, out, unique] BOOL *Present);
/* Function 39 */
DWORD PNP_RequestEjectPC(
DWORD
__stdcall
PNP_RequestEjectPC(
[in] handle_t hBinding);
/* Function 40 */
cpp_quote("#define PNP_GET_HWPROFFLAGS 0x1")
cpp_quote("#define PNP_SET_HWPROFFLAGS 0x2")
DWORD PNP_HwProfFlags(
DWORD
__stdcall
PNP_HwProfFlags(
[in] handle_t hBinding,
[in] DWORD ulAction,
[in, string, ref] LPWSTR pDeviceID,
@@ -581,7 +663,9 @@ interface pnp
[in] DWORD ulFlags);
/* Function 41 */
DWORD PNP_GetHwProfInfo(
DWORD
__stdcall
PNP_GetHwProfInfo(
[in] handle_t hBinding,
[in] DWORD ulIndex,
[in, out, ref] HWPROFILEINFO *pHWProfileInfo,
@@ -590,7 +674,9 @@ interface pnp
[in] DWORD ulFlags);
/* Function 42 */
DWORD PNP_AddEmptyLogConf(
DWORD
__stdcall
PNP_AddEmptyLogConf(
[in] handle_t hBinding,
[in, string, ref] LPWSTR pDeviceID,
[in] DWORD ulPriority,
@@ -598,7 +684,9 @@ interface pnp
[in] DWORD ulFlags);
/* Function 43 */
DWORD PNP_FreeLogConf(
DWORD
__stdcall
PNP_FreeLogConf(
[in] handle_t hBinding,
[in, string, ref] LPWSTR pDeviceID,
[in] DWORD ulLogConfType,
@@ -606,7 +694,9 @@ interface pnp
[in] DWORD ulFlags);
/* Function 44 */
DWORD PNP_GetFirstLogConf(
DWORD
__stdcall
PNP_GetFirstLogConf(
[in] handle_t hBinding,
[in, string, ref] LPWSTR pDeviceID,
[in] DWORD ulLogConfType,
@@ -614,7 +704,9 @@ interface pnp
[in] DWORD ulFlags);
/* Function 45 */
DWORD PNP_GetNextLogConf(
DWORD
__stdcall
PNP_GetNextLogConf(
[in] handle_t hBinding,
[in, string, ref] LPWSTR pDeviceID,
[in] DWORD ulLogConfType,
@@ -623,7 +715,9 @@ interface pnp
[in] DWORD ulFlags);
/* Function 46 */
DWORD PNP_GetLogConfPriority(
DWORD
__stdcall
PNP_GetLogConfPriority(
[in] handle_t hBinding,
[in, string, ref] LPWSTR pDeviceID,
[in] DWORD ulType,
@@ -632,7 +726,9 @@ interface pnp
[in] DWORD ulFlags);
/* Function 47 */
DWORD PNP_AddResDes(
DWORD
__stdcall
PNP_AddResDes(
[in] handle_t hBinding,
[in, string, ref] LPWSTR pDeviceID,
[in] DWORD ulLogConfTag,
@@ -644,7 +740,9 @@ interface pnp
[in] DWORD ulFlags);
/* Function 48 */
DWORD PNP_FreeResDes(
DWORD
__stdcall
PNP_FreeResDes(
[in] handle_t hBinding,
[in, string, ref] LPWSTR pDeviceID,
[in] DWORD ulLogConfTag,
@@ -656,7 +754,9 @@ interface pnp
[in] DWORD ulFlags);
/* Function 49 */
DWORD PNP_GetNextResDes(
DWORD
__stdcall
PNP_GetNextResDes(
[in] handle_t hBinding,
[in, string, ref] LPWSTR pDeviceID,
[in] DWORD ulLogConfTag,
@@ -668,7 +768,9 @@ interface pnp
[in] DWORD ulFlags);
/* Function 50 */
DWORD PNP_GetResDesData(
DWORD
__stdcall
PNP_GetResDesData(
[in] handle_t hBinding,
[in, string, ref] LPWSTR pDeviceID,
[in] DWORD ulLogConfTag,
@@ -680,7 +782,9 @@ interface pnp
[in] DWORD ulFlags);
/* Function 51 */
DWORD PNP_GetResDesDataSize(
DWORD
__stdcall
PNP_GetResDesDataSize(
[in] handle_t hBinding,
[in, string, ref] LPWSTR pDeviceID,
[in] DWORD ulLogConfTag,
@@ -691,7 +795,9 @@ interface pnp
[in] DWORD ulFlags);
/* Function 52 */
DWORD PNP_ModifyResDes(
DWORD
__stdcall
PNP_ModifyResDes(
[in] handle_t hBinding,
[in, string, ref] LPWSTR pDeviceID,
[in] DWORD ulLogConfTag,
@@ -704,7 +810,9 @@ interface pnp
[in] DWORD ulFlags);
/* Function 53 */
DWORD PNP_DetectResourceConflict(
DWORD
__stdcall
PNP_DetectResourceConflict(
[in] handle_t hBinding,
[in, string, ref] LPWSTR pDeviceID,
[in] RESOURCEID ResourceID,
@@ -714,7 +822,9 @@ interface pnp
[in] DWORD ulFlags);
/* Function 54 */
DWORD PNP_QueryResConfList(
DWORD
__stdcall
PNP_QueryResConfList(
[in] handle_t hBinding,
[in, string, ref] LPWSTR pDeviceID,
[in] RESOURCEID ResourceID,
@@ -725,13 +835,17 @@ interface pnp
[in] DWORD ulFlags);
/* Function 55 */
DWORD PNP_SetHwProf(
DWORD
__stdcall
PNP_SetHwProf(
[in] handle_t hBinding,
[in] DWORD ulHardwareProfile,
[in] DWORD ulFlags);
/* Function 56 */
DWORD PNP_QueryArbitratorFreeData(
DWORD
__stdcall
PNP_QueryArbitratorFreeData(
[in] handle_t hBinding,
[out,size_is(DataLen)] BYTE *pData,
[in] DWORD DataLen,
@@ -740,7 +854,9 @@ interface pnp
[in] DWORD ulFlags);
/* Function 57 */
DWORD PNP_QueryArbitratorFreeSize(
DWORD
__stdcall
PNP_QueryArbitratorFreeSize(
[in] handle_t hBinding,
[out] DWORD *pulSize,
[in, string, ref] LPWSTR pDeviceID,
@@ -748,22 +864,30 @@ interface pnp
[in] DWORD ulFlags);
/* Function 58 */
DWORD PNP_RunDetection(
DWORD
__stdcall
PNP_RunDetection(
[in] handle_t hBinding,
[in] DWORD ulFlags);
/* Function 59 */
DWORD PNP_RegisterNotification(
DWORD
__stdcall
PNP_RegisterNotification(
[in] handle_t hBinding);
/* Function 60 */
DWORD PNP_UnregisterNotification(
DWORD
__stdcall
PNP_UnregisterNotification(
[in] handle_t hBinding);
cpp_quote("#if _WIN32_WINNT >= 0x0501")
/* Function 61 */
DWORD PNP_GetCustomDevProp(
DWORD
__stdcall
PNP_GetCustomDevProp(
[in] handle_t hBinding,
[in, string, ref] LPWSTR pDeviceID,
[in, string, ref] LPWSTR CustomPropName,
@@ -774,12 +898,16 @@ cpp_quote("#if _WIN32_WINNT >= 0x0501")
[in] DWORD ulFlags);
/* Function 62 */
DWORD PNP_GetVersionInternal(
DWORD
__stdcall
PNP_GetVersionInternal(
[in] handle_t hBinding,
[in, out] WORD *pwVersion);
/* Function 63 */
DWORD PNP_GetBlockedDriverInfo(
DWORD
__stdcall
PNP_GetBlockedDriverInfo(
[in] handle_t hBinding,
[out, size_is(*pulLength), length_is(*pulTransferLen)] BYTE *Buffer,
[out] PNP_RPC_BUFFER_SIZE *pulTransferLen,
@@ -787,7 +915,9 @@ cpp_quote("#if _WIN32_WINNT >= 0x0501")
[in] DWORD ulFlags);
/* Function 64 */
DWORD PNP_GetServerSideDeviceInstallFlags(
DWORD
__stdcall
PNP_GetServerSideDeviceInstallFlags(
[in] handle_t hBinding,
[out] DWORD *pulSSDIFlags,
[in] DWORD ulFlags);
+6
View File
@@ -0,0 +1,6 @@
[
explicit_handle
]
interface winreg
{
}
+363
View File
@@ -0,0 +1,363 @@
/*
* Directory Service Setup interface definition
*/
#include <ms-dtyp.idl>
typedef [context_handle] HANDLE RPC_HKEY;
typedef RPC_HKEY *PRPC_HKEY;
typedef [handle] PWCHAR PREGISTRY_SERVER_NAME;
typedef struct value_ent
{
PRPC_UNICODE_STRING ve_valuename;
DWORD ve_valuelen;
LPDWORD ve_valueptr;
DWORD ve_type;
} RVALENT, *PRVALENT;
typedef ULONG REGSAM;
typedef struct _RPC_SECURITY_DESCRIPTOR
{
[size_is(cbInSecurityDescriptor), length_is(cbOutSecurityDescriptor)] PBYTE lpSecurityDescriptor;
DWORD cbInSecurityDescriptor;
DWORD cbOutSecurityDescriptor;
} RPC_SECURITY_DESCRIPTOR, *PRPC_SECURITY_DESCRIPTOR;
typedef struct _RPC_SECURITY_ATTRIBUTES
{
DWORD nLength;
RPC_SECURITY_DESCRIPTOR RpcSecurityDescriptor;
BOOLEAN bInheritHandle;
} RPC_SECURITY_ATTRIBUTES, *PRPC_SECURITY_ATTRIBUTES;
[
uuid(338CD001-2244-31F1-AAAA-900038001003),
version(1.0),
pointer_default(unique),
endpoint("ncacn_np:[\\pipe\\winreg]")
#ifndef __midl
,explicit_handle
#endif
]
interface winreg
{
/* Function 0 */
error_status_t
__stdcall
OpenClassesRoot(
[in, unique] PREGISTRY_SERVER_NAME ServerName,
[in] REGSAM samDesired,
[out] PRPC_HKEY phKey);
/* Function 1 */
error_status_t
__stdcall
OpenCurrentUser(
[in, unique] PREGISTRY_SERVER_NAME ServerName,
[in] REGSAM samDesired,
[out] PRPC_HKEY phKey);
/* Function 2 */
error_status_t
__stdcall
OpenLocalMachine(
[in, unique] PREGISTRY_SERVER_NAME ServerName,
[in] REGSAM samDesired,
[out] PRPC_HKEY phKey);
/* Function 3 */
error_status_t
__stdcall
OpenPerformanceData(
[in, unique] PREGISTRY_SERVER_NAME ServerName,
[in] REGSAM samDesired,
[out] PRPC_HKEY phKey);
/* Function 4 */
error_status_t
__stdcall
OpenUsers(
[in, unique] PREGISTRY_SERVER_NAME ServerName,
[in] REGSAM samDesired,
[out] PRPC_HKEY phKey);
/* Function 5 */
error_status_t
__stdcall
BaseRegCloseKey(
[in, out] PRPC_HKEY hKey);
/* Function 6 */
error_status_t
__stdcall
BaseRegCreateKey(
[in] RPC_HKEY hKey,
[in] PRPC_UNICODE_STRING lpSubKey,
[in] PRPC_UNICODE_STRING lpClass,
[in] DWORD dwOptions,
[in] REGSAM samDesired,
[in, unique] PRPC_SECURITY_ATTRIBUTES lpSecurityAttributes,
[out] PRPC_HKEY phkResult,
[in, out, unique] LPDWORD lpdwDisposition);
/* Function 7 */
error_status_t
__stdcall
BaseRegDeleteKey(
[in] RPC_HKEY hKey,
[in] PRPC_UNICODE_STRING lpSubKey);
/* Function 8 */
error_status_t
__stdcall
BaseRegDeleteValue(
[in] RPC_HKEY hKey,
[in] PRPC_UNICODE_STRING lpValueName);
/* Function 9 */
error_status_t
__stdcall
BaseRegEnumKey(
[in] RPC_HKEY hKey,
[in] DWORD dwIndex,
[in] PRPC_UNICODE_STRING lpNameIn,
[out] PRPC_UNICODE_STRING lpNameOut,
[in, unique] PRPC_UNICODE_STRING lpClassIn,
[out] PRPC_UNICODE_STRING *lplpClassOut,
[in, out, unique] PFILETIME lpftLastWriteTime);
/* Function 10 */
error_status_t
__stdcall
BaseRegEnumValue(
[in] RPC_HKEY hKey,
[in] DWORD dwIndex,
[in] PRPC_UNICODE_STRING lpValueNameIn,
[out] PRPC_UNICODE_STRING lpValueNameOut,
[in, out, unique] LPDWORD lpType,
[in, out, unique, size_is(lpcbData ? *lpcbData : 0), length_is(lpcbLen ? *lpcbLen : 0)] LPBYTE lpData, /* range(0, 0x4000000) */
[in, out, unique] LPDWORD lpcbData,
[in, out, unique] LPDWORD lpcbLen);
/* Function 11 */
error_status_t
__stdcall
BaseRegFlushKey(
[in] RPC_HKEY hKey);
/* Function 12 */
error_status_t
__stdcall
BaseRegGetKeySecurity(
[in] RPC_HKEY hKey,
[in] SECURITY_INFORMATION SecurityInformation,
[in] PRPC_SECURITY_DESCRIPTOR pRpcSecurityDescriptorIn,
[out] PRPC_SECURITY_DESCRIPTOR pRpcSecurityDescriptorOut);
/* Function 13 */
error_status_t
__stdcall
BaseRegLoadKey(
[in] RPC_HKEY hKey,
[in] PRPC_UNICODE_STRING lpSubKey,
[in] PRPC_UNICODE_STRING lpFile);
/* Function 14 */
void
__stdcall
Opnum14NotImplemented(void);
/* Function 15 */
error_status_t
__stdcall
BaseRegOpenKey(
[in] RPC_HKEY hKey,
[in] PRPC_UNICODE_STRING lpSubKey,
[in] DWORD dwOptions,
[in] REGSAM samDesired,
[out] PRPC_HKEY phkResult);
/* Function 16 */
error_status_t
__stdcall
BaseRegQueryInfoKey(
[in] RPC_HKEY hKey,
[in] PRPC_UNICODE_STRING lpClassIn,
[out] PRPC_UNICODE_STRING lpClassOut,
[out] LPDWORD lpcSubKeys,
[out] LPDWORD lpcbMaxSubKeyLen,
[out] LPDWORD lpcbMaxClassLen,
[out] LPDWORD lpcValues,
[out] LPDWORD lpcbMaxValueNameLen,
[out] LPDWORD lpcbMaxValueLen,
[out] LPDWORD lpcbSecurityDescriptor,
[out] PFILETIME lpftLastWriteTime);
/* Function 17 */
error_status_t
__stdcall
BaseRegQueryValue(
[in] RPC_HKEY hKey,
[in] PRPC_UNICODE_STRING lpValueName,
[in, out, unique] LPDWORD lpType,
[in, out, unique, size_is(lpcbData ? *lpcbData : 0), length_is(lpcbLen ? *lpcbLen : 0)] LPBYTE lpData, /* range(0, 0x4000000) */
[in, out, unique] LPDWORD lpcbData,
[in, out, unique] LPDWORD lpcbLen);
/* Function 18 */
error_status_t
__stdcall
BaseRegReplaceKey(
[in] RPC_HKEY hKey,
[in] PRPC_UNICODE_STRING lpSubKey,
[in] PRPC_UNICODE_STRING lpNewFile,
[in] PRPC_UNICODE_STRING lpOldFile);
/* Function 19 */
error_status_t
__stdcall
BaseRegRestoreKey(
[in] RPC_HKEY hKey,
[in] PRPC_UNICODE_STRING lpFile,
[in] DWORD Flags);
/* Function 20 */
error_status_t
__stdcall
BaseRegSaveKey(
[in] RPC_HKEY hKey,
[in] PRPC_UNICODE_STRING lpFile,
[in, unique] PRPC_SECURITY_ATTRIBUTES pSecurityAttributes);
/* Function 21 */
error_status_t
__stdcall
BaseRegSetKeySecurity(
[in] RPC_HKEY hKey,
[in] SECURITY_INFORMATION SecurityInformation,
[in] PRPC_SECURITY_DESCRIPTOR pRpcSecurityDescriptor);
/* Function 22 */
error_status_t
__stdcall
BaseRegSetValue(
[in] RPC_HKEY hKey,
[in] PRPC_UNICODE_STRING lpValueName,
[in] DWORD dwType,
[in, size_is(cbData)] LPBYTE lpData,
[in] DWORD cbData);
/* Function 23 */
error_status_t
__stdcall
BaseRegUnLoadKey(
[in] RPC_HKEY hKey,
[in] PRPC_UNICODE_STRING lpSubKey);
/* Function 24 */
ULONG
__stdcall
BaseInitiateSystemShutdown(
[in, unique] PREGISTRY_SERVER_NAME ServerName,
[in, unique] PRPC_UNICODE_STRING lpMessage,
[in] ULONG dwTimeout,
[in] BOOLEAN bForceAppsClosed,
[in] BOOLEAN bRebootAfterShutdown);
/* Function 25 */
ULONG
__stdcall
BaseAbortSystemShutdown(
[in, unique] PREGISTRY_SERVER_NAME ServerName);
/* Function 26 */
error_status_t
__stdcall
BaseRegGetVersion(
[in] RPC_HKEY hKey,
[out] LPDWORD lpdwVersion);
/* Function 27 */
error_status_t
__stdcall
OpenCurrentConfig(
[in, unique] PREGISTRY_SERVER_NAME ServerName,
[in] REGSAM samDesired,
[out] PRPC_HKEY phKey);
/* Function 28 */
void
__stdcall
Opnum28NotImplemented(void);
/* Function 29 */
error_status_t
__stdcall
BaseRegQueryMultipleValues(
[in] RPC_HKEY hKey,
[in, size_is(num_vals), length_is(num_vals)] PRVALENT val_listIn,
[out, size_is(num_vals), length_is(num_vals)] PRVALENT val_listOut,
[in] DWORD num_vals,
[in, out, unique, size_is(*ldwTotsize), length_is(*ldwTotsize)] char *lpvalueBuf,
[in, out, ref] LPDWORD ldwTotsize);
/* Function 30 */
ULONG
__stdcall
BaseInitiateSystemShutdownEx(
[in, unique] PREGISTRY_SERVER_NAME ServerName,
[in, unique] PRPC_UNICODE_STRING lpMessage,
[in] ULONG dwTimeout,
[in] BOOLEAN bForceAppsClosed,
[in] BOOLEAN bRebootAfterShutdown,
[in] ULONG dwReason);
/* Function 31 */
error_status_t
__stdcall
BaseRegSaveKeyEx(
[in] RPC_HKEY hKey,
[in] PRPC_UNICODE_STRING lpFile,
[in, unique] PRPC_SECURITY_ATTRIBUTES pSecurityAttributes,
[in] DWORD Flags);
/* Function 32 */
error_status_t
__stdcall
OpenPerformanceText(
[in, unique] PREGISTRY_SERVER_NAME ServerName,
[in] REGSAM samDesired,
[out] PRPC_HKEY phKey);
/* Function 33 */
error_status_t
__stdcall
OpenPerformanceNlsText(
[in, unique] PREGISTRY_SERVER_NAME ServerName,
[in] REGSAM samDesired,
[out] PRPC_HKEY phKey);
/* Function 34 */
error_status_t
__stdcall
BaseRegQueryMultipleValues2(
[in] RPC_HKEY hKey,
[in, size_is(num_vals), length_is(num_vals)] PRVALENT val_listIn,
[out, size_is(num_vals), length_is(num_vals)] PRVALENT val_listOut,
[in] DWORD num_vals,
[in, out, unique, size_is(*ldwTotsize), length_is(*ldwTotsize)] char *lpvalueBuf,
[in] LPDWORD ldwTotsize,
[out] LPDWORD ldwRequiredSize);
/* Function 35 */
error_status_t
__stdcall
BaseRegDeleteKeyEx(
[in] RPC_HKEY hKey,
[in] PRPC_UNICODE_STRING lpSubKey,
[in] REGSAM AccessMask,
[in] DWORD Reserved);
}
+3 -3
View File
@@ -7,7 +7,7 @@
typedef [context_handle] PVOID WLANSVC_RPC_HANDLE;
typedef WLANSVC_RPC_HANDLE* LPWLANSVC_RPC_HANDLE;
typedef [handle] LPWSTR WLANSVC_HANDLE;
typedef [handle, string] LPWSTR WLANSVC_HANDLE;
/* FIXME */
typedef struct struct_C {
@@ -49,8 +49,8 @@ interface wlansvc_interface
DWORD _RpcOpenHandle(
[in] WLANSVC_HANDLE szMachineName,
[in] DWORD dwClientVersion,
[in, out] DWORD* pdwNegotiatedVersion,
[in, out] LPWLANSVC_RPC_HANDLE phClientHandle);
[out] DWORD* pdwNegotiatedVersion,
[out] LPWLANSVC_RPC_HANDLE phClientHandle);
/* Function: 0x01 */
DWORD _RpcCloseHandle(
+42 -40
View File
@@ -2,7 +2,7 @@
* Fast486 386/486 CPU Emulation Library
* fast486.h
*
* Copyright (C) 2013 Aleksandar Andrejevic <theflash AT sdf DOT lonestar DOT org>
* Copyright (C) 2014 Aleksandar Andrejevic <theflash AT sdf DOT lonestar DOT org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -75,14 +75,15 @@
#define FAST486_DR4_RESERVED 0xFFFF1FF0
#define FAST486_DR5_RESERVED 0x0000DC00
#define FAST486_IDT_TASK_GATE 0x5
#define FAST486_IDT_INT_GATE 0x6
#define FAST486_IDT_TRAP_GATE 0x7
#define FAST486_IDT_INT_GATE_32 0xE
#define FAST486_IDT_TRAP_GATE_32 0xF
#define FAST486_LDT_SIGNATURE 0x02
#define FAST486_TSS_SIGNATURE 0x09
#define FAST486_LDT_SIGNATURE 0x02
#define FAST486_TASK_GATE_SIGNATURE 0x05
#define FAST486_IDT_INT_GATE 0x06
#define FAST486_IDT_TRAP_GATE 0x07
#define FAST486_TSS_SIGNATURE 0x09
#define FAST486_BUSY_TSS_SIGNATURE 0x0B
#define FAST486_CALL_GATE_SIGNATURE 0x0C
#define FAST486_IDT_INT_GATE_32 0x0E
#define FAST486_IDT_TRAP_GATE_32 0x0F
#define FAST486_PREFIX_SEG (1 << 0)
#define FAST486_PREFIX_OPSIZE (1 << 1)
@@ -91,6 +92,20 @@
#define FAST486_PREFIX_REPNZ (1 << 4)
#define FAST486_PREFIX_REP (1 << 5)
#define FAST486_FPU_DEFAULT_CONTROL 0x037F
#define FAST486_PAGE_SIZE 4096
#define FAST486_CACHE_SIZE 32
/*
* These are condiciones sine quibus non that should be respected, because
* otherwise when fetching DWORDs you would read extra garbage bytes
* (by reading outside of the prefetch buffer). The prefetch cache must
* also not cross a page boundary.
*/
C_ASSERT((FAST486_CACHE_SIZE >= sizeof(DWORD))
&& (FAST486_CACHE_SIZE <= FAST486_PAGE_SIZE));
struct _FAST486_STATE;
typedef struct _FAST486_STATE FAST486_STATE, *PFAST486_STATE;
@@ -155,14 +170,6 @@ typedef enum _FAST486_EXCEPTIONS
FAST486_EXCEPTION_MC = 0x12
} FAST486_EXCEPTIONS, *PFAST486_EXCEPTIONS;
typedef enum _FAST486_INT_STATUS
{
FAST486_INT_NONE = 0,
FAST486_INT_EXECUTE = 1,
FAST486_INT_SIGNAL = 2,
FAST486_INT_DELAYED = 3
} FAST486_INT_STATUS, *PFAST486_INT_STATUS;
typedef
VOID
(NTAPI *FAST486_MEM_READ_PROC)
@@ -188,7 +195,7 @@ VOID
(NTAPI *FAST486_IO_READ_PROC)
(
PFAST486_STATE State,
ULONG Port,
USHORT Port,
PVOID Buffer,
ULONG DataCount,
UCHAR DataSize
@@ -199,19 +206,12 @@ VOID
(NTAPI *FAST486_IO_WRITE_PROC)
(
PFAST486_STATE State,
ULONG Port,
USHORT Port,
PVOID Buffer,
ULONG DataCount,
UCHAR DataSize
);
typedef
VOID
(NTAPI *FAST486_IDLE_PROC)
(
PFAST486_STATE State
);
typedef
VOID
(NTAPI *FAST486_BOP_PROC)
@@ -259,22 +259,21 @@ typedef struct _FAST486_SEG_REG
ULONG Base;
} FAST486_SEG_REG, *PFAST486_SEG_REG;
typedef struct
typedef struct _FAST486_LDT_REG
{
USHORT Selector;
ULONG Base;
ULONG Limit;
} FAST486_LDT_REG;
} FAST486_LDT_REG, *PFAST486_LDT_REG;
typedef struct
typedef struct _FAST486_TASK_REG
{
USHORT Selector;
ULONG Base;
ULONG Limit;
BOOLEAN Busy;
} FAST486_TASK_REG, *PFAST486_TASK_REG;
#pragma pack(push, 1)
#include <pshpack1.h>
typedef struct
{
@@ -348,7 +347,7 @@ typedef struct
/* Verify the structure size */
C_ASSERT(sizeof(FAST486_IDT_ENTRY) == sizeof(ULONGLONG));
#pragma pack(pop)
#include <poppack.h>
typedef struct _FAST486_TABLE_REG
{
@@ -420,6 +419,7 @@ typedef struct _FAST486_FPU_DATA_REG
{
ULONGLONG Mantissa;
USHORT Exponent;
UCHAR Sign;
} FAST486_FPU_DATA_REG, *PFAST486_FPU_DATA_REG;
typedef union _FAST486_FPU_STATUS_REG
@@ -471,7 +471,6 @@ struct _FAST486_STATE
FAST486_MEM_WRITE_PROC MemWriteCallback;
FAST486_IO_READ_PROC IoReadCallback;
FAST486_IO_WRITE_PROC IoWriteCallback;
FAST486_IDLE_PROC IdleCallback;
FAST486_BOP_PROC BopCallback;
FAST486_INT_ACK_PROC IntAckCallback;
FAST486_REG GeneralRegs[FAST486_NUM_GEN_REGS];
@@ -487,13 +486,21 @@ struct _FAST486_STATE
ULONG ExceptionCount;
ULONG PrefixFlags;
FAST486_SEG_REGS SegmentOverride;
FAST486_INT_STATUS IntStatus;
UCHAR PendingIntNum;
BOOLEAN Halted;
BOOLEAN IntSignaled;
BOOLEAN DoNotInterrupt;
PULONG Tlb;
#ifndef FAST486_NO_PREFETCH
BOOLEAN PrefetchValid;
ULONG PrefetchAddress;
UCHAR PrefetchCache[FAST486_CACHE_SIZE];
#endif
#ifndef FAST486_NO_FPU
FAST486_FPU_DATA_REG FpuRegisters[FAST486_NUM_FPU_REGS];
FAST486_FPU_STATUS_REG FpuStatus;
FAST486_FPU_CONTROL_REG FpuControl;
USHORT FpuTag;
#endif
};
/* FUNCTIONS ******************************************************************/
@@ -505,7 +512,6 @@ Fast486Initialize(PFAST486_STATE State,
FAST486_MEM_WRITE_PROC MemWriteCallback,
FAST486_IO_READ_PROC IoReadCallback,
FAST486_IO_WRITE_PROC IoWriteCallback,
FAST486_IDLE_PROC IdleCallback,
FAST486_BOP_PROC BopCallback,
FAST486_INT_ACK_PROC IntAckCallback,
PULONG Tlb);
@@ -534,10 +540,6 @@ VOID
NTAPI
Fast486DumpState(PFAST486_STATE State);
VOID
NTAPI
Fast486Interrupt(PFAST486_STATE State, UCHAR Number);
VOID
NTAPI
Fast486InterruptSignal(PFAST486_STATE State);
+4 -2
View File
@@ -98,7 +98,9 @@ XMLPUBFUN void XMLCALL
xmlSAX2StartDocument (void *ctx);
XMLPUBFUN void XMLCALL
xmlSAX2EndDocument (void *ctx);
#if defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED)
#if defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || \
defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED) || \
defined(LIBXML_LEGACY_ENABLED)
XMLPUBFUN void XMLCALL
xmlSAX2StartElement (void *ctx,
const xmlChar *fullname,
@@ -106,7 +108,7 @@ XMLPUBFUN void XMLCALL
XMLPUBFUN void XMLCALL
xmlSAX2EndElement (void *ctx,
const xmlChar *name);
#endif /* LIBXML_SAX1_ENABLED or LIBXML_HTML_ENABLED */
#endif /* LIBXML_SAX1_ENABLED or LIBXML_HTML_ENABLED or LIBXML_LEGACY_ENABLED */
XMLPUBFUN void XMLCALL
xmlSAX2StartElementNs (void *ctx,
const xmlChar *localname,
+3 -3
View File
@@ -57,7 +57,7 @@ struct _xmlEntity {
const xmlChar *URI; /* the full URI as computed */
int owner; /* does the entity own the childrens */
int checked; /* was the entity content checked */
/* this is also used to count entites
/* this is also used to count entities
* references done from that entity
* and if it contains '<' */
};
@@ -103,7 +103,7 @@ XMLPUBFUN xmlEntityPtr XMLCALL
XMLPUBFUN xmlEntityPtr XMLCALL
xmlGetPredefinedEntity (const xmlChar *name);
XMLPUBFUN xmlEntityPtr XMLCALL
xmlGetDocEntity (xmlDocPtr doc,
xmlGetDocEntity (const xmlDoc *doc,
const xmlChar *name);
XMLPUBFUN xmlEntityPtr XMLCALL
xmlGetDtdEntity (xmlDocPtr doc,
@@ -120,7 +120,7 @@ XMLPUBFUN xmlChar * XMLCALL
xmlEncodeEntitiesReentrant(xmlDocPtr doc,
const xmlChar *input);
XMLPUBFUN xmlChar * XMLCALL
xmlEncodeSpecialChars (xmlDocPtr doc,
xmlEncodeSpecialChars (const xmlDoc *doc,
const xmlChar *input);
XMLPUBFUN xmlEntitiesTablePtr XMLCALL
xmlCreateEntitiesTable (void);
+12 -5
View File
@@ -39,7 +39,9 @@ XMLPUBFUN void XMLCALL xmlCleanupGlobals(void);
* Returns the new xmlParserInputBufferPtr in case of success or NULL if no
* method was found.
*/
typedef xmlParserInputBufferPtr (*xmlParserInputBufferCreateFilenameFunc) (const char *URI, xmlCharEncoding enc);
typedef xmlParserInputBufferPtr (*xmlParserInputBufferCreateFilenameFunc) (const char *URI,
xmlCharEncoding enc);
/**
* xmlOutputBufferCreateFilenameFunc:
@@ -52,7 +54,9 @@ typedef xmlParserInputBufferPtr (*xmlParserInputBufferCreateFilenameFunc) (const
* Returns the new xmlOutputBufferPtr in case of success or NULL if no
* method was found.
*/
typedef xmlOutputBufferPtr (*xmlOutputBufferCreateFilenameFunc) (const char *URI, xmlCharEncodingHandlerPtr encoder, int compression);
typedef xmlOutputBufferPtr (*xmlOutputBufferCreateFilenameFunc) (const char *URI,
xmlCharEncodingHandlerPtr encoder,
int compression);
XMLPUBFUN xmlParserInputBufferCreateFilenameFunc
XMLCALL xmlParserInputBufferCreateFilenameDefault (xmlParserInputBufferCreateFilenameFunc func);
@@ -185,7 +189,8 @@ XMLPUBFUN xmlDeregisterNodeFunc XMLCALL xmlThrDefDeregisterNodeDefault(xmlDeregi
XMLPUBFUN xmlOutputBufferCreateFilenameFunc XMLCALL
xmlThrDefOutputBufferCreateFilenameDefault(xmlOutputBufferCreateFilenameFunc func);
XMLPUBFUN xmlParserInputBufferCreateFilenameFunc XMLCALL
xmlThrDefParserInputBufferCreateFilenameDefault(xmlParserInputBufferCreateFilenameFunc func);
xmlThrDefParserInputBufferCreateFilenameDefault(
xmlParserInputBufferCreateFilenameFunc func);
/** DOC_DISABLE */
/*
@@ -297,7 +302,8 @@ XMLPUBFUN xmlBufferAllocationScheme * XMLCALL __xmlBufferAllocScheme(void);
#else
XMLPUBVAR xmlBufferAllocationScheme xmlBufferAllocScheme;
#endif
XMLPUBFUN xmlBufferAllocationScheme XMLCALL xmlThrDefBufferAllocScheme(xmlBufferAllocationScheme v);
XMLPUBFUN xmlBufferAllocationScheme XMLCALL
xmlThrDefBufferAllocScheme(xmlBufferAllocationScheme v);
XMLPUBFUN int * XMLCALL __xmlDefaultBufferSize(void);
#ifdef LIBXML_THREAD_ENABLED
@@ -479,7 +485,8 @@ XMLPUBFUN xmlDeregisterNodeFunc * XMLCALL __xmlDeregisterNodeDefaultValue(void);
XMLPUBVAR xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue;
#endif
XMLPUBFUN xmlParserInputBufferCreateFilenameFunc * XMLCALL __xmlParserInputBufferCreateFilenameValue(void);
XMLPUBFUN xmlParserInputBufferCreateFilenameFunc * XMLCALL \
__xmlParserInputBufferCreateFilenameValue(void);
#ifdef LIBXML_THREAD_ENABLED
#define xmlParserInputBufferCreateFilenameValue \
(*(__xmlParserInputBufferCreateFilenameValue()))
+6 -2
View File
@@ -32,7 +32,9 @@ typedef xmlRelaxNG *xmlRelaxNGPtr;
*
* Signature of an error callback from a Relax-NG validation
*/
typedef void (XMLCDECL *xmlRelaxNGValidityErrorFunc) (void *ctx, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3);
typedef void (XMLCDECL *xmlRelaxNGValidityErrorFunc) (void *ctx,
const char *msg,
...) LIBXML_ATTR_FORMAT(2,3);
/**
* xmlRelaxNGValidityWarningFunc:
@@ -42,7 +44,9 @@ typedef void (XMLCDECL *xmlRelaxNGValidityErrorFunc) (void *ctx, const char *msg
*
* Signature of a warning callback from a Relax-NG validation
*/
typedef void (XMLCDECL *xmlRelaxNGValidityWarningFunc) (void *ctx, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3);
typedef void (XMLCDECL *xmlRelaxNGValidityWarningFunc) (void *ctx,
const char *msg,
...) LIBXML_ATTR_FORMAT(2,3);
/**
* A schemas validation context
+49 -42
View File
@@ -116,8 +116,8 @@ typedef xmlBuf *xmlBufPtr;
* A few public routines for xmlBuf. As those are expected to be used
* mostly internally the bulk of the routines are internal in buf.h
*/
XMLPUBFUN xmlChar* XMLCALL xmlBufContent (const xmlBufPtr buf);
XMLPUBFUN xmlChar* XMLCALL xmlBufEnd (const xmlBufPtr buf);
XMLPUBFUN xmlChar* XMLCALL xmlBufContent (const xmlBuf* buf);
XMLPUBFUN xmlChar* XMLCALL xmlBufEnd (xmlBufPtr buf);
XMLPUBFUN size_t XMLCALL xmlBufUse (const xmlBufPtr buf);
XMLPUBFUN size_t XMLCALL xmlBufShrink (xmlBufPtr buf, size_t len);
@@ -654,7 +654,11 @@ struct _xmlDOMWrapCtxt {
/*
* Some helper functions
*/
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_DEBUG_ENABLED) || defined (LIBXML_HTML_ENABLED) || defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED)
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || \
defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_DEBUG_ENABLED) || \
defined (LIBXML_HTML_ENABLED) || defined(LIBXML_SAX1_ENABLED) || \
defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || \
defined(LIBXML_DOCB_ENABLED) || defined(LIBXML_LEGACY_ENABLED)
XMLPUBFUN int XMLCALL
xmlValidateNCName (const xmlChar *value,
int space);
@@ -731,14 +735,14 @@ XMLPUBFUN int XMLCALL
XMLPUBFUN void XMLCALL
xmlBufferEmpty (xmlBufferPtr buf);
XMLPUBFUN const xmlChar* XMLCALL
xmlBufferContent (const xmlBufferPtr buf);
xmlBufferContent (const xmlBuffer *buf);
XMLPUBFUN xmlChar* XMLCALL
xmlBufferDetach (xmlBufferPtr buf);
XMLPUBFUN void XMLCALL
xmlBufferSetAllocationScheme(xmlBufferPtr buf,
xmlBufferAllocationScheme scheme);
XMLPUBFUN int XMLCALL
xmlBufferLength (const xmlBufferPtr buf);
xmlBufferLength (const xmlBuffer *buf);
/*
* Creating/freeing new structures.
@@ -754,7 +758,7 @@ XMLPUBFUN xmlDtdPtr XMLCALL
const xmlChar *ExternalID,
const xmlChar *SystemID);
XMLPUBFUN xmlDtdPtr XMLCALL
xmlGetIntSubset (xmlDocPtr doc);
xmlGetIntSubset (const xmlDoc *doc);
XMLPUBFUN void XMLCALL
xmlFreeDtd (xmlDtdPtr cur);
#ifdef LIBXML_LEGACY_ENABLED
@@ -842,7 +846,7 @@ XMLPUBFUN xmlNodePtr XMLCALL
const xmlChar *content);
#endif
XMLPUBFUN xmlNodePtr XMLCALL
xmlNewDocText (xmlDocPtr doc,
xmlNewDocText (const xmlDoc *doc,
const xmlChar *content);
XMLPUBFUN xmlNodePtr XMLCALL
xmlNewText (const xmlChar *content);
@@ -873,20 +877,20 @@ XMLPUBFUN xmlNodePtr XMLCALL
xmlNewCharRef (xmlDocPtr doc,
const xmlChar *name);
XMLPUBFUN xmlNodePtr XMLCALL
xmlNewReference (xmlDocPtr doc,
xmlNewReference (const xmlDoc *doc,
const xmlChar *name);
XMLPUBFUN xmlNodePtr XMLCALL
xmlCopyNode (const xmlNodePtr node,
xmlCopyNode (xmlNodePtr node,
int recursive);
XMLPUBFUN xmlNodePtr XMLCALL
xmlDocCopyNode (const xmlNodePtr node,
xmlDocCopyNode (xmlNodePtr node,
xmlDocPtr doc,
int recursive);
XMLPUBFUN xmlNodePtr XMLCALL
xmlDocCopyNodeList (xmlDocPtr doc,
const xmlNodePtr node);
xmlNodePtr node);
XMLPUBFUN xmlNodePtr XMLCALL
xmlCopyNodeList (const xmlNodePtr node);
xmlCopyNodeList (xmlNodePtr node);
#ifdef LIBXML_TREE_ENABLED
XMLPUBFUN xmlNodePtr XMLCALL
xmlNewTextChild (xmlNodePtr parent,
@@ -906,19 +910,19 @@ XMLPUBFUN xmlNodePtr XMLCALL
* Navigating.
*/
XMLPUBFUN long XMLCALL
xmlGetLineNo (xmlNodePtr node);
xmlGetLineNo (const xmlNode *node);
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED)
XMLPUBFUN xmlChar * XMLCALL
xmlGetNodePath (xmlNodePtr node);
xmlGetNodePath (const xmlNode *node);
#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED) */
XMLPUBFUN xmlNodePtr XMLCALL
xmlDocGetRootElement (xmlDocPtr doc);
xmlDocGetRootElement (const xmlDoc *doc);
XMLPUBFUN xmlNodePtr XMLCALL
xmlGetLastChild (xmlNodePtr parent);
xmlGetLastChild (const xmlNode *parent);
XMLPUBFUN int XMLCALL
xmlNodeIsText (xmlNodePtr node);
xmlNodeIsText (const xmlNode *node);
XMLPUBFUN int XMLCALL
xmlIsBlankNode (xmlNodePtr node);
xmlIsBlankNode (const xmlNode *node);
/*
* Changing the structure.
@@ -945,7 +949,7 @@ XMLPUBFUN xmlNodePtr XMLCALL
xmlNodePtr cur);
#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) */
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || \
defined(LIBXML_SCHEMAS_ENABLED)
defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED)
XMLPUBFUN xmlNodePtr XMLCALL
xmlAddPrevSibling (xmlNodePtr cur,
xmlNodePtr elem);
@@ -986,10 +990,11 @@ XMLPUBFUN xmlNsPtr XMLCALL
xmlSearchNsByHref (xmlDocPtr doc,
xmlNodePtr node,
const xmlChar *href);
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || \
defined(LIBXML_SCHEMAS_ENABLED)
XMLPUBFUN xmlNsPtr * XMLCALL
xmlGetNsList (xmlDocPtr doc,
xmlNodePtr node);
xmlGetNsList (const xmlDoc *doc,
const xmlNode *node);
#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) */
XMLPUBFUN void XMLCALL
@@ -1003,7 +1008,8 @@ XMLPUBFUN xmlNsPtr XMLCALL
/*
* Changing the content.
*/
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED)
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || \
defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED)
XMLPUBFUN xmlAttrPtr XMLCALL
xmlSetProp (xmlNodePtr node,
const xmlChar *name,
@@ -1013,39 +1019,40 @@ XMLPUBFUN xmlAttrPtr XMLCALL
xmlNsPtr ns,
const xmlChar *name,
const xmlChar *value);
#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) */
#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || \
defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) */
XMLPUBFUN xmlChar * XMLCALL
xmlGetNoNsProp (xmlNodePtr node,
xmlGetNoNsProp (const xmlNode *node,
const xmlChar *name);
XMLPUBFUN xmlChar * XMLCALL
xmlGetProp (xmlNodePtr node,
xmlGetProp (const xmlNode *node,
const xmlChar *name);
XMLPUBFUN xmlAttrPtr XMLCALL
xmlHasProp (xmlNodePtr node,
xmlHasProp (const xmlNode *node,
const xmlChar *name);
XMLPUBFUN xmlAttrPtr XMLCALL
xmlHasNsProp (xmlNodePtr node,
xmlHasNsProp (const xmlNode *node,
const xmlChar *name,
const xmlChar *nameSpace);
XMLPUBFUN xmlChar * XMLCALL
xmlGetNsProp (xmlNodePtr node,
xmlGetNsProp (const xmlNode *node,
const xmlChar *name,
const xmlChar *nameSpace);
XMLPUBFUN xmlNodePtr XMLCALL
xmlStringGetNodeList (xmlDocPtr doc,
xmlStringGetNodeList (const xmlDoc *doc,
const xmlChar *value);
XMLPUBFUN xmlNodePtr XMLCALL
xmlStringLenGetNodeList (xmlDocPtr doc,
xmlStringLenGetNodeList (const xmlDoc *doc,
const xmlChar *value,
int len);
XMLPUBFUN xmlChar * XMLCALL
xmlNodeListGetString (xmlDocPtr doc,
xmlNodePtr list,
const xmlNode *list,
int inLine);
#ifdef LIBXML_TREE_ENABLED
XMLPUBFUN xmlChar * XMLCALL
xmlNodeListGetRawString (xmlDocPtr doc,
xmlNodePtr list,
xmlNodeListGetRawString (const xmlDoc *doc,
const xmlNode *list,
int inLine);
#endif /* LIBXML_TREE_ENABLED */
XMLPUBFUN void XMLCALL
@@ -1065,19 +1072,19 @@ XMLPUBFUN void XMLCALL
const xmlChar *content,
int len);
XMLPUBFUN xmlChar * XMLCALL
xmlNodeGetContent (xmlNodePtr cur);
xmlNodeGetContent (const xmlNode *cur);
XMLPUBFUN int XMLCALL
xmlNodeBufGetContent (xmlBufferPtr buffer,
xmlNodePtr cur);
const xmlNode *cur);
XMLPUBFUN int XMLCALL
xmlBufGetNodeContent (xmlBufPtr buf,
xmlNodePtr cur);
const xmlNode *cur);
XMLPUBFUN xmlChar * XMLCALL
xmlNodeGetLang (xmlNodePtr cur);
xmlNodeGetLang (const xmlNode *cur);
XMLPUBFUN int XMLCALL
xmlNodeGetSpacePreserve (xmlNodePtr cur);
xmlNodeGetSpacePreserve (const xmlNode *cur);
#ifdef LIBXML_TREE_ENABLED
XMLPUBFUN void XMLCALL
xmlNodeSetLang (xmlNodePtr cur,
@@ -1087,8 +1094,8 @@ XMLPUBFUN void XMLCALL
int val);
#endif /* LIBXML_TREE_ENABLED */
XMLPUBFUN xmlChar * XMLCALL
xmlNodeGetBase (xmlDocPtr doc,
xmlNodePtr cur);
xmlNodeGetBase (const xmlDoc *doc,
const xmlNode *cur);
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED)
XMLPUBFUN void XMLCALL
xmlNodeSetBase (xmlNodePtr cur,
@@ -1234,7 +1241,7 @@ XMLPUBFUN int XMLCALL
* Compression.
*/
XMLPUBFUN int XMLCALL
xmlGetDocCompressMode (xmlDocPtr doc);
xmlGetDocCompressMode (const xmlDoc *doc);
XMLPUBFUN void XMLCALL
xmlSetDocCompressMode (xmlDocPtr doc,
int mode);
+1 -1
View File
@@ -209,7 +209,7 @@ XMLPUBFUN int XMLCALL
xmlParserInputBufferPtr
__xmlParserInputBufferCreateFilename(const char *URI,
xmlCharEncoding enc);
xmlCharEncoding enc);
#ifdef LIBXML_OUTPUT_ENABLED
/*
+1 -1
View File
@@ -86,7 +86,7 @@ struct _xmlError {
char *str2; /* extra string information */
char *str3; /* extra string information */
int int1; /* extra number information */
int int2; /* column number of the error or 0 if N/A (todo: rename this field when we would break ABI) */
int int2; /* error column # or 0 if N/A (todo: rename field when we would brk ABI) */
void *ctxt; /* the parser context if available */
void *node; /* the node in the tree */
};
+4 -4
View File
@@ -29,21 +29,21 @@ XMLPUBFUN void XMLCALL xmlCheckVersion(int version);
*
* the version string like "1.2.3"
*/
#define LIBXML_DOTTED_VERSION "2.9.1"
#define LIBXML_DOTTED_VERSION "2.9.2"
/**
* LIBXML_VERSION:
*
* the version number: 1.2.3 value is 10203
*/
#define LIBXML_VERSION 20901
#define LIBXML_VERSION 20902
/**
* LIBXML_VERSION_STRING:
*
* the version number string, 1.2.3 value is "10203"
*/
#define LIBXML_VERSION_STRING "20901"
#define LIBXML_VERSION_STRING "20902"
/**
* LIBXML_VERSION_EXTRA:
@@ -58,7 +58,7 @@ XMLPUBFUN void XMLCALL xmlCheckVersion(int version);
* Macro to check that the libxml version in use is compatible with
* the version the software has been compiled against
*/
#define LIBXML_TEST_VERSION xmlCheckVersion(20901);
#define LIBXML_TEST_VERSION xmlCheckVersion(20902);
#ifndef VMS
#if 0
+43 -3
View File
@@ -1128,7 +1128,7 @@ Language=English
Run a system diagnostic utility supplied by your hardware manufacturer.
In particular, run a memory check, and check for faulty or mismatched
memory. Try changing video adapters.
Disable or remove any newly installed hardware and drivers. Disable or
remove any newly installed software. If you need to use Safe Mode to
remove or disable components, restart your computer, press F8 to select
@@ -1322,7 +1322,7 @@ Facility=System
SymbolicName=DRIVER_CORRUPTED_EXPOOL
Language=English
A device driver has pool.
Check to make sure any new hardware or software is properly installed.
If this is a new installation, ask your hardware or software manufacturer
for any ReactOS updates you might need.
@@ -1374,6 +1374,22 @@ Language=English
DRIVER_LEFT_LOCKED_PAGES_IN_PROCESS
.
MessageId=0xCC
Severity=Success
Facility=System
SymbolicName=PAGE_FAULT_IN_FREED_SPECIAL_POOL
Language=English
PAGE_FAULT_IN_FREED_SPECIAL_POOL
.
MessageId=0xCD
Severity=Success
Facility=System
SymbolicName=PAGE_FAULT_BEYOND_END_OF_ALLOCATION
Language=English
PAGE_FAULT_BEYOND_END_OF_ALLOCATION
.
MessageId=0xCE
Severity=Success
Facility=System
@@ -1406,6 +1422,22 @@ Language=English
The driver mistakenly marked a part of its image pageable instead of non-pageable.
.
MessageId=0xD5
Severity=Success
Facility=System
SymbolicName=DRIVER_PAGE_FAULT_IN_FREED_SPECIAL_POOL
Language=English
DRIVER_PAGE_FAULT_IN_FREED_SPECIAL_POOL
.
MessageId=0xD6
Severity=Success
Facility=System
SymbolicName=DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION
Language=English
DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION
.
MessageId=0xD7
Severity=Success
Facility=System
@@ -1478,7 +1510,7 @@ If Parameter1 == 0, an executive worker item was found in memory which
must not contain such items. Usually this is memory being freed. This
is usually caused by a device driver that has not cleaned up properly
before freeing memory.
If Parameter1 == 1, an attempt was made to queue an executive worker item
with a usermode execution routine.
.
@@ -1570,3 +1602,11 @@ SymbolicName=ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY
Language=English
An attempt was made to execute to non-executable memory.
.
MessageId=0x139
Severity=Success
Facility=System
SymbolicName=KERNEL_SECURITY_CHECK_FAILURE
Language=English
A critical kernel security check failed.
.
+94 -35
View File
@@ -180,7 +180,7 @@ Language=English
The %1 service depends on the following nonexistent service: %2
.
MessageId=7004
MessageId=7005
Severity=Error
Facility=System
SymbolicName=EVENT_CALL_TO_FUNCTION_FAILED
@@ -188,7 +188,7 @@ Language=English
The %1 call failed with the following error: %n%2
.
MessageId=7005
MessageId=7006
Severity=Error
Facility=System
SymbolicName=EVENT_CALL_TO_FUNCTION_FAILED_II
@@ -196,7 +196,7 @@ Language=English
The %1 call failed for %2 with the following error: %n%3
.
MessageId=7006
MessageId=7007
Severity=Error
Facility=System
SymbolicName=EVENT_REVERTED_TO_LASTKNOWNGOOD
@@ -204,7 +204,7 @@ Language=English
The system reverted to its last known good configuration. The system is restarting....
.
MessageId=7007
MessageId=7008
Severity=Error
Facility=System
SymbolicName=EVENT_BAD_ACCOUNT_NAME
@@ -212,7 +212,7 @@ Language=English
No backslash is in the account name.
.
MessageId=7008
MessageId=7009
Severity=Error
Facility=System
SymbolicName=EVENT_CONNECTION_TIMEOUT
@@ -220,7 +220,7 @@ Language=English
Timeout (%1 milliseconds) waiting for the %2 service to connect.
.
MessageId=7009
MessageId=7010
Severity=Error
Facility=System
SymbolicName=EVENT_READFILE_TIMEOUT
@@ -228,7 +228,7 @@ Language=English
Timeout (%1 milliseconds) waiting for ReadFile.
.
MessageId=7010
MessageId=7011
Severity=Error
Facility=System
SymbolicName=EVENT_TRANSACT_TIMEOUT
@@ -236,7 +236,7 @@ Language=English
Timeout (%1 milliseconds) waiting for a transaction response from the %2 service.
.
MessageId=7011
MessageId=7012
Severity=Error
Facility=System
SymbolicName=EVENT_TRANSACT_INVALID
@@ -244,7 +244,7 @@ Language=English
Message returned in transaction has incorrect size.
.
MessageId=7012
MessageId=7013
Severity=Error
Facility=System
SymbolicName=EVENT_FIRST_LOGON_FAILED
@@ -252,7 +252,7 @@ Language=English
Logon attempt with current password failed with the following error: %n%1
.
MessageId=7013
MessageId=7014
Severity=Error
Facility=System
SymbolicName=EVENT_SECOND_LOGON_FAILED
@@ -260,7 +260,7 @@ Language=English
Second logon attempt with old password also failed with the following error: %n%1
.
MessageId=7014
MessageId=7015
Severity=Error
Facility=System
SymbolicName=EVENT_INVALID_DRIVER_DEPENDENCY
@@ -268,7 +268,7 @@ Language=English
Boot-start or system-start driver (%1) must not depend on a service.
.
MessageId=7015
MessageId=7016
Severity=Error
Facility=System
SymbolicName=EVENT_BAD_SERVICE_STATE
@@ -276,7 +276,7 @@ Language=English
The %1 service has reported an invalid current state %2.
.
MessageId=7016
MessageId=7017
Severity=Error
Facility=System
SymbolicName=EVENT_CIRCULAR_DEPENDENCY_DEMAND
@@ -284,7 +284,7 @@ Language=English
Detected circular dependencies demand starting %1.
.
MessageId=7017
MessageId=7018
Severity=Error
Facility=System
SymbolicName=EVENT_CIRCULAR_DEPENDENCY_AUTO
@@ -292,7 +292,7 @@ Language=English
Detected circular dependencies auto-starting services.
.
MessageId=7018
MessageId=7019
Severity=Error
Facility=System
SymbolicName=EVENT_DEPEND_ON_LATER_SERVICE
@@ -300,7 +300,7 @@ Language=English
Circular dependency: The %1 service depends on a service in a group which starts later.
.
MessageId=7019
MessageId=7020
Severity=Error
Facility=System
SymbolicName=EVENT_DEPEND_ON_LATER_GROUP
@@ -308,7 +308,7 @@ Language=English
Circular dependency: The %1 service depends on a group which starts later.
.
MessageId=7020
MessageId=7021
Severity=Error
Facility=System
SymbolicName=EVENT_SEVERE_SERVICE_FAILED
@@ -316,7 +316,7 @@ Language=English
About to revert to the last known good configuration because the %1 service failed to start.
.
MessageId=7021
MessageId=7022
Severity=Error
Facility=System
SymbolicName=EVENT_SERVICE_START_HUNG
@@ -324,7 +324,7 @@ Language=English
The %1 service hung on starting.
.
MessageId=7022
MessageId=7023
Severity=Error
Facility=System
SymbolicName=EVENT_SERVICE_EXIT_FAILED
@@ -332,7 +332,7 @@ Language=English
The %1 service terminated with the following error: %n%2
.
MessageId=7023
MessageId=7024
Severity=Error
Facility=System
SymbolicName=EVENT_SERVICE_EXIT_FAILED_SPECIFIC
@@ -340,7 +340,7 @@ Language=English
The %1 service terminated with service-specific error %2.
.
MessageId=7024
MessageId=7025
Severity=Error
Facility=System
SymbolicName=EVENT_SERVICE_START_AT_BOOT_FAILED
@@ -348,7 +348,7 @@ Language=English
At least one service or driver failed during system startup. Use Event Viewer to examine the event log for details.
.
MessageId=7025
MessageId=7026
Severity=Error
Facility=System
SymbolicName=EVENT_BOOT_SYSTEM_DRIVERS_FAILED
@@ -356,7 +356,7 @@ Language=English
The following boot-start or system-start driver(s) failed to load: %1
.
MessageId=7026
MessageId=7027
Severity=Error
Facility=System
SymbolicName=EVENT_RUNNING_LASTKNOWNGOOD
@@ -364,7 +364,7 @@ Language=English
ReactOS could not be started as configured. A previous working configuration was used instead.
.
MessageId=7027
MessageId=7028
Severity=Error
Facility=System
SymbolicName=EVENT_TAKE_OWNERSHIP
@@ -372,7 +372,7 @@ Language=English
The %1 Registry key denied access to SYSTEM account programs so the Service Control Manager took ownership of the Registry key.
.
MessageId=7028
MessageId=7029
Severity=Error
Facility=System
SymbolicName=TITLE_SC_MESSAGE_BOX
@@ -380,7 +380,7 @@ Language=English
Service Control Manager %0
.
MessageId=7029
MessageId=7030
Severity=Error
Facility=System
SymbolicName=EVENT_SERVICE_NOT_INTERACTIVE
@@ -388,7 +388,7 @@ Language=English
The %1 service is marked as an interactive service. However, the system is configured to not allow interactive services. This service may not function properly.
.
MessageId=7030
MessageId=7031
Severity=Error
Facility=System
SymbolicName=EVENT_SERVICE_CRASH
@@ -396,7 +396,7 @@ Language=English
The %1 service terminated unexpectedly. It has done this %2 time(s). The following corrective action will be taken in %3 milliseconds: %5.
.
MessageId=7031
MessageId=7032
Severity=Error
Facility=System
SymbolicName=EVENT_SERVICE_RECOVERY_FAILED
@@ -404,7 +404,7 @@ Language=English
The Service Control Manager tried to take a corrective action (%2) after the unexpected termination of the %3 service, but this action failed with the following error: %n%4
.
MessageId=7032
MessageId=7033
Severity=Error
Facility=System
SymbolicName=EVENT_SERVICE_SCESRV_FAILED
@@ -414,7 +414,7 @@ configuration server (scesrv.dll) failed to initialize with error %1. The
system is restarting...
.
MessageId=7033
MessageId=7034
Severity=Error
Facility=System
SymbolicName=EVENT_SERVICE_CRASH_NO_ACTION
@@ -422,7 +422,7 @@ Language=English
The %1 service terminated unexpectedly. It has done this %2 time(s).
.
MessageId=7034
MessageId=7035
Severity=Informational
Facility=System
SymbolicName=EVENT_SERVICE_CONTROL_SUCCESS
@@ -430,15 +430,15 @@ Language=English
The %1 service was successfully sent a %2 control.
.
MessageId=7035
MessageId=7036
Severity=Informational
Facility=System
SymbolicName=EVENT_SERVICE_STATUS_SUCCESS
Language=English
Service Control Manager %0
The %1 service entered the %2 state.
.
MessageId=7036
MessageId=7037
Severity=Error
Facility=System
SymbolicName=EVENT_SERVICE_CONFIG_BACKOUT_FAILED
@@ -451,7 +451,7 @@ service or may encounter other errors. To ensure that the service is configured
properly, use the Services snap-in in Microsoft Management Console (MMC).
.
MessageId=7037
MessageId=7038
Severity=Error
Facility=System
SymbolicName=EVENT_FIRST_LOGON_FAILED_II
@@ -462,6 +462,65 @@ configured properly, use the Services snap-in in Microsoft Management
Console (MMC).
.
MessageId=7039
Severity=Warning
Facility=System
SymbolicName=EVENT_SERVICE_DIFFERENT_PID_CONNECTED
Language=English
A service process other than the one launched by the Service Control Manager
connected when starting the %1 service. The Service Control Manager launched
process %2 and process %3 connected instead.%n%n
Note that if this service is configured to start under a debugger, this behavior is expected.
.
MessageId=7040
Severity=Informational
Facility=System
SymbolicName=EVENT_SERVICE_START_TYPE_CHANGED
Language=English
The start type of the %1 service was changed from %2 to %3.
.
MessageId=7041
Severity=Error
Facility=System
SymbolicName=EVENT_SERVICE_LOGON_TYPE_NOT_GRANTED
Language=English
The %1 service was unable to log on as %2 with the currently configured password due to the following error:%n
Logon failure: the user has not been granted the requested logon type at this computer.%n%n
Service: %1%n
Domain and account: %2%n%n
This service account does not have the necessary user right "Log on as a service."%n%n
User Action%n%n
Assign "Log on as a service" to the service account on this computer. You can
use Local Security Settings (Secpol.msc) to do this. If this computer is a
node in a cluster, check that this user right is assigned to the Cluster
service account on all nodes in the cluster.%n%n
If you have already assigned this user right to the service account, and the
user right appears to be removed, a Group Policy object associated with this
node might be removing the right. Check with your domain administrator to find
out if this is happening.
.
MessageId=7042
Severity=Informational
Facility=System
SymbolicName=EVENT_SERVICE_STOP_SUCCESS_WITH_REASON
Language=English
The %1 service was successfully sent a %2 control.%n%n
The reason specified was: %3 [%4]%n%n
Comment: %5
.
MessageId=7043
Severity=Error
Facility=System
SymbolicName=EVENT_SERVICE_SHUTDOWN_FAILED
Language=English
The %1 service did not shut down properly after receiving a preshutdown control.
.
;
; transport events 9000-9499
+396
View File
@@ -0,0 +1,396 @@
#pragma once
class CListView: public CWindow
{
public:
HWND Create(HWND hWndParent, _U_RECT rect, LPCTSTR szWindowName = NULL, DWORD dwStyle = 0,
DWORD dwExStyle = 0, _U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
{
m_hWnd = ::CreateWindowEx(dwExStyle,
WC_LISTVIEW,
szWindowName,
dwStyle,
rect.m_lpRect->left,
rect.m_lpRect->top,
rect.m_lpRect->right - rect.m_lpRect->left,
rect.m_lpRect->bottom - rect.m_lpRect->top,
hWndParent,
MenuOrID.m_hMenu,
_AtlBaseModule.GetModuleInstance(),
lpCreateParam);
return m_hWnd;
}
void SetRedraw(BOOL redraw)
{
SendMessage(WM_SETREDRAW, redraw);
}
BOOL SetTextBkColor(COLORREF cr)
{
return (BOOL)SendMessage(LVM_SETTEXTBKCOLOR, 0, cr);
}
BOOL SetBkColor(COLORREF cr)
{
return (BOOL)SendMessage(LVM_SETBKCOLOR, 0, cr);
}
BOOL SetTextColor(COLORREF cr)
{
return (BOOL)SendMessage(LVM_SETTEXTCOLOR, 0, cr);
}
DWORD SetExtendedListViewStyle(DWORD dw, DWORD dwMask = 0)
{
return (DWORD)SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, dwMask, dw);
}
int InsertColumn(int iCol, LV_COLUMN* pcol)
{
return (int)SendMessage(LVM_INSERTCOLUMN, iCol, reinterpret_cast<LPARAM>(pcol));
}
int InsertColumn(int iCol, LPWSTR pszText, int fmt, int width = -1, int iSubItem = -1, int iImage = -1, int iOrder = -1)
{
LV_COLUMN column = {0};
column.mask = LVCF_TEXT|LVCF_FMT;
column.pszText = pszText;
column.fmt = fmt;
if(width != -1)
{
column.mask |= LVCF_WIDTH;
column.cx = width;
}
if(iSubItem != -1)
{
column.mask |= LVCF_SUBITEM;
column.iSubItem = iSubItem;
}
if(iImage != -1)
{
column.mask |= LVCF_IMAGE;
column.iImage = iImage;
}
if(iOrder != -1)
{
column.mask |= LVCF_ORDER;
column.iOrder = iOrder;
}
return InsertColumn(iCol, &column);
}
int GetColumnWidth(int iCol)
{
return (int)SendMessage(LVM_GETCOLUMNWIDTH, iCol);
}
HIMAGELIST SetImageList(HIMAGELIST himl, int iImageList)
{
return (HIMAGELIST)SendMessage(LVM_SETIMAGELIST, iImageList, reinterpret_cast<LPARAM>(himl));
}
int InsertItem(const LV_ITEM * pitem)
{
return (int)SendMessage(LVM_INSERTITEM, 0, reinterpret_cast<LPARAM>(pitem));
}
BOOL DeleteItem(int i)
{
return (BOOL)SendMessage(LVM_DELETEITEM, i, 0);
}
BOOL GetItem(LV_ITEM* pitem)
{
return (BOOL)SendMessage(LVM_GETITEM, 0, reinterpret_cast<LPARAM>(pitem));
}
BOOL SetItem(const LV_ITEM * pitem)
{
return (BOOL)SendMessage(LVM_SETITEM, 0, reinterpret_cast<LPARAM>(pitem));
}
int GetItemCount()
{
return SendMessage(LVM_GETITEMCOUNT);
}
BOOL DeleteAllItems()
{
return (BOOL)SendMessage(LVM_DELETEALLITEMS);
}
BOOL Update(int i)
{
return (BOOL)SendMessage(LVM_UPDATE, i, 0);
}
UINT GetSelectedCount()
{
return (UINT)SendMessage(LVM_GETSELECTEDCOUNT);
}
BOOL SortItems(PFNLVCOMPARE pfnCompare, PVOID lParam)
{
return (BOOL)SendMessage(LVM_SORTITEMS, (WPARAM)lParam, (LPARAM) pfnCompare);
}
BOOL EnsureVisible(int i, BOOL fPartialOK)
{
return (BOOL)SendMessage(LVM_ENSUREVISIBLE, i, MAKELPARAM((fPartialOK),0));
}
HWND EditLabel(int i)
{
return (HWND)SendMessage(LVM_EDITLABEL, i, 0);
}
int GetSelectionMark()
{
return (int)SendMessage(LVM_GETSELECTIONMARK);
}
int GetNextItem(int i, WORD flags)
{
return (int)SendMessage(LVM_GETNEXTITEM, i, MAKELPARAM((flags),0));
}
void GetItemSpacing(SIZE& spacing, BOOL bSmallIconView = FALSE)
{
DWORD ret = SendMessage(LVM_GETITEMSPACING, bSmallIconView);
spacing.cx = LOWORD(ret);
spacing.cy = HIWORD(ret);
}
void SetItemState(int i, UINT state, UINT mask)
{
LV_ITEM item;
item.stateMask = mask;
item.state = state;
SendMessage(LVM_SETITEMSTATE, i, reinterpret_cast<LPARAM>(&item));
}
int HitTest(LV_HITTESTINFO * phtInfo)
{
return (int)SendMessage(LVM_HITTEST, 0, reinterpret_cast<LPARAM>(&phtInfo));
}
DWORD_PTR GetItemData(int i)
{
LVITEMW lvItem;
lvItem.iItem = i;
lvItem.mask = LVIF_PARAM;
BOOL ret = GetItem(&lvItem);
return (DWORD_PTR)(ret ? lvItem.lParam : NULL);
}
BOOL GetSelectedItem(LV_ITEM* pItem)
{
pItem->iItem = GetNextItem(-1, LVNI_ALL | LVNI_SELECTED);
if (pItem->iItem == -1)
return FALSE;
return GetItem(pItem);
}
};
template<typename TItemData = DWORD_PTR>
class CToolbar :
public CWindowImplBaseT<CWindow>
{
public: // Configuration methods
HWND Create(HWND hWndParent, DWORD dwStyles = 0, DWORD dwExStyles = 0)
{
if (!dwStyles)
{
dwStyles = WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN;
}
if (!dwExStyles)
{
dwExStyles = WS_EX_TOOLWINDOW;
}
m_hWnd = CreateWindowExW(dwExStyles,
TOOLBARCLASSNAME,
NULL,
dwStyles,
0, 0, 0, 0, hWndParent,
NULL,
_AtlBaseModule.GetModuleInstance(),
NULL);
if (!m_hWnd)
return NULL;
/* Identify the version we're using */
SetButtonStructSize();
return m_hWnd;
}
DWORD SetButtonStructSize()
{
return SendMessageW(TB_BUTTONSTRUCTSIZE, sizeof(TBBUTTON), 0);
}
HWND GetTooltip()
{
return (HWND)SendMessageW(TB_GETTOOLTIPS);
}
DWORD SetTooltip(HWND hWndTooltip)
{
return SendMessageW(TB_SETTOOLTIPS, hWndTooltip, 0);
}
INT GetHotItem()
{
return SendMessageW(TB_GETHOTITEM);
}
DWORD SetHotItem(INT item)
{
return SendMessageW(TB_SETHOTITEM, item);
}
public: // Button list management methods
int GetButtonCount()
{
return SendMessageW(TB_BUTTONCOUNT);
}
DWORD GetButton(int index, TBBUTTON * btn)
{
return SendMessageW(TB_GETBUTTON, index, reinterpret_cast<LPARAM>(btn));
}
DWORD AddButton(TBBUTTON * btn)
{
return SendMessageW(TB_ADDBUTTONS, 1, reinterpret_cast<LPARAM>(btn));
}
DWORD AddButtons(int count, TBBUTTON * buttons)
{
return SendMessageW(TB_ADDBUTTONS, count, reinterpret_cast<LPARAM>(buttons));
}
DWORD InsertButton(int insertAt, TBBUTTON * btn)
{
return SendMessageW(TB_INSERTBUTTON, insertAt, reinterpret_cast<LPARAM>(btn));
}
DWORD MoveButton(int oldIndex, int newIndex)
{
return SendMessageW(TB_MOVEBUTTON, oldIndex, newIndex);
}
DWORD DeleteButton(int index)
{
return SendMessageW(TB_DELETEBUTTON, index, 0);
}
DWORD GetButtonInfo(int cmdId, TBBUTTONINFO * info)
{
return SendMessageW(TB_GETBUTTONINFO, cmdId, reinterpret_cast<LPARAM>(info));
}
DWORD SetButtonInfo(int cmdId, TBBUTTONINFO * info)
{
return SendMessageW(TB_SETBUTTONINFO, cmdId, reinterpret_cast<LPARAM>(info));
}
DWORD CheckButton(int cmdId, BOOL bCheck)
{
return SendMessageW(TB_CHECKBUTTON, cmdId, MAKELPARAM(bCheck, 0));
}
public: // Layout management methods
DWORD GetButtonSize()
{
return SendMessageW(TB_GETBUTTONSIZE);
}
DWORD SetButtonSize(int w, int h)
{
return SendMessageW(TB_SETBUTTONSIZE, 0, MAKELPARAM(w, h));
}
DWORD AutoSize()
{
return SendMessageW(TB_AUTOSIZE);
}
DWORD GetMaxSize(LPSIZE size)
{
return SendMessageW(TB_GETMAXSIZE, 0, reinterpret_cast<LPARAM>(size));
}
DWORD GetIdealSize(BOOL useHeight, LPSIZE size)
{
return SendMessageW(TB_GETIDEALSIZE, useHeight, reinterpret_cast<LPARAM>(size));
}
DWORD GetMetrics(TBMETRICS * tbm)
{
return SendMessageW(TB_GETMETRICS, 0, reinterpret_cast<LPARAM>(tbm));
}
DWORD SetMetrics(TBMETRICS * tbm)
{
return SendMessageW(TB_SETMETRICS, 0, reinterpret_cast<LPARAM>(tbm));
}
DWORD GetItemRect(int index, LPRECT prcItem)
{
return SendMessageW(TB_GETITEMRECT, index, reinterpret_cast<LPARAM>(prcItem));
}
DWORD SetRedraw(BOOL bEnable)
{
return SendMessageW(WM_SETREDRAW, bEnable);
}
DWORD GetPadding()
{
return SendMessageW(TB_GETPADDING);
}
DWORD SetPadding(int x, int y)
{
return SendMessageW(TB_SETPADDING, 0, MAKELPARAM(x, y));
}
public: // Image list management methods
DWORD SetImageList(HIMAGELIST himl)
{
return SendMessageW(TB_SETIMAGELIST, 0, reinterpret_cast<LPARAM>(himl));
}
public: // Other methods
INT HitTest(PPOINT ppt)
{
return (INT) SendMessageW(TB_HITTEST, 0, reinterpret_cast<LPARAM>(ppt));
}
public: // Utility methods
TItemData * GetItemData(int index)
{
TBBUTTON btn;
GetButton(index, &btn);
return (TItemData*) btn.dwData;
}
DWORD SetItemData(int index, TItemData * data)
{
TBBUTTONINFOW info = { 0 };
info.cbSize = sizeof(info);
info.dwMask = TBIF_BYINDEX | TBIF_LPARAM;
info.lParam = (DWORD_PTR) data;
return SetButtonInfo(index, &info);
}
};
+397
View File
@@ -0,0 +1,397 @@
/*
* Copyright 1999, 2000 Juergen Schmied
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef __ROS_SHELL_UTILS_H
#define __ROS_SHELL_UTILS_H
#ifdef __cplusplus
extern "C" {
#endif /* defined(__cplusplus) */
#ifdef __cplusplus
# define IID_PPV_ARG(Itype, ppType) IID_##Itype, reinterpret_cast<void**>((static_cast<Itype**>(ppType)))
# define IID_NULL_PPV_ARG(Itype, ppType) IID_##Itype, NULL, reinterpret_cast<void**>((static_cast<Itype**>(ppType)))
#else
# define IID_PPV_ARG(Itype, ppType) IID_##Itype, (void**)(ppType)
# define IID_NULL_PPV_ARG(Itype, ppType) IID_##Itype, NULL, (void**)(ppType)
#endif
#if 1
#define FAILED_UNEXPECTEDLY(hr) (FAILED(hr) && (DbgPrint("Unexpected failure %08x.\n", hr), TRUE))
#else
#define FAILED_UNEXPECTEDLY(hr) FAILED(hr)
#endif
#ifdef __cplusplus
} /* extern "C" */
#endif /* defined(__cplusplus) */
#ifdef __cplusplus
template <class Base>
class CComDebugObject : public Base
{
public:
CComDebugObject(void * = NULL)
{
#if DEBUG_CCOMOBJECT_CREATION
DbgPrint("%S, this=%08p\n", __FUNCTION__, static_cast<Base*>(this));
#endif
_pAtlModule->Lock();
}
virtual ~CComDebugObject()
{
this->FinalRelease();
_pAtlModule->Unlock();
}
STDMETHOD_(ULONG, AddRef)()
{
int rc = this->InternalAddRef();
#if DEBUG_CCOMOBJECT_REFCOUNTING
DbgPrint("%s, RefCount is now %d(--)! \n", __FUNCTION__, rc);
#endif
return rc;
}
STDMETHOD_(ULONG, Release)()
{
int rc = this->InternalRelease();
#if DEBUG_CCOMOBJECT_REFCOUNTING
DbgPrint("%s, RefCount is now %d(--)! \n", __FUNCTION__, rc);
#endif
if (rc == 0)
{
#if DEBUG_CCOMOBJECT_DESTRUCTION
DbgPrint("%s, RefCount reached 0 Deleting!\n", __FUNCTION__);
#endif
delete this;
}
return rc;
}
STDMETHOD(QueryInterface)(REFIID iid, void **ppvObject)
{
return this->_InternalQueryInterface(iid, ppvObject);
}
static HRESULT WINAPI CreateInstance(CComDebugObject<Base> **pp)
{
CComDebugObject<Base> *newInstance;
HRESULT hResult;
ATLASSERT(pp != NULL);
if (pp == NULL)
return E_POINTER;
hResult = E_OUTOFMEMORY;
newInstance = NULL;
ATLTRY(newInstance = new CComDebugObject<Base>());
if (newInstance != NULL)
{
newInstance->SetVoid(NULL);
newInstance->InternalFinalConstructAddRef();
hResult = newInstance->_AtlInitialConstruct();
if (SUCCEEDED(hResult))
hResult = newInstance->FinalConstruct();
if (SUCCEEDED(hResult))
hResult = newInstance->_AtlFinalConstruct();
newInstance->InternalFinalConstructRelease();
if (hResult != S_OK)
{
delete newInstance;
newInstance = NULL;
}
}
*pp = newInstance;
return hResult;
}
};
#ifdef DEBUG_CCOMOBJECT
# define _CComObject CComDebugObject
#else
# define _CComObject CComObject
#endif
template<class T>
void ReleaseCComPtrExpectZero(CComPtr<T>& cptr, BOOL forceRelease = FALSE)
{
if (cptr.p != NULL)
{
int nrc = cptr->Release();
if (nrc > 0)
{
DbgPrint("WARNING: Unexpected RefCount > 0 (%d)!\n", nrc);
if (forceRelease)
{
while (nrc > 0)
{
nrc = cptr->Release();
}
}
}
cptr.Detach();
}
}
template<class T, class R>
HRESULT inline ShellDebugObjectCreator(REFIID riid, R ** ppv)
{
CComPtr<T> obj;
HRESULT hResult;
if (ppv == NULL)
return E_POINTER;
*ppv = NULL;
ATLTRY(obj = new CComDebugObject<T>);
if (obj.p == NULL)
return E_OUTOFMEMORY;
hResult = obj->QueryInterface(riid, reinterpret_cast<void **>(ppv));
if (FAILED(hResult))
return hResult;
return S_OK;
}
template<class T, class R>
HRESULT inline ShellObjectCreator(REFIID riid, R ** ppv)
{
CComPtr<T> obj;
HRESULT hResult;
if (ppv == NULL)
return E_POINTER;
*ppv = NULL;
ATLTRY(obj = new _CComObject<T>);
if (obj.p == NULL)
return E_OUTOFMEMORY;
hResult = obj->QueryInterface(riid, reinterpret_cast<void **>(ppv));
if (FAILED(hResult))
return hResult;
return S_OK;
}
template<class T, class R>
HRESULT inline ShellObjectCreatorInit(REFIID riid, R ** ppv)
{
CComPtr<T> obj;
CComPtr<R> result;
HRESULT hResult;
if (ppv == NULL)
return E_POINTER;
*ppv = NULL;
ATLTRY(obj = new _CComObject<T>);
if (obj.p == NULL)
return E_OUTOFMEMORY;
hResult = obj->QueryInterface(riid, reinterpret_cast<void **>(&result));
if (FAILED(hResult))
return hResult;
hResult = obj->Initialize();
if (FAILED(hResult))
return hResult;
*ppv = result.Detach();
return S_OK;
}
template<class T>
HRESULT inline ShellObjectCreatorInit(REFIID riid, void ** ppv)
{
CComPtr<T> obj;
CComPtr<IUnknown> result;
HRESULT hResult;
if (ppv == NULL)
return E_POINTER;
*ppv = NULL;
ATLTRY(obj = new _CComObject<T>);
if (obj.p == NULL)
return E_OUTOFMEMORY;
hResult = obj->QueryInterface(riid, reinterpret_cast<void **>(&result));
if (FAILED(hResult))
return hResult;
hResult = obj->Initialize();
if (FAILED(hResult))
return hResult;
*ppv = result.Detach();
return S_OK;
}
template<class T, class T1>
HRESULT inline ShellObjectCreatorInit(T1 initArg1, REFIID riid, void ** ppv)
{
CComPtr<T> obj;
HRESULT hResult;
if (ppv == NULL)
return E_POINTER;
*ppv = NULL;
ATLTRY(obj = new _CComObject<T>);
if (obj.p == NULL)
return E_OUTOFMEMORY;
hResult = obj->QueryInterface(riid, ppv);
if (FAILED(hResult))
return hResult;
hResult = obj->Initialize(initArg1);
if (FAILED(hResult))
return hResult;
return S_OK;
}
template<class T, class T1, class R>
HRESULT inline ShellObjectCreatorInit(T1 initArg1, REFIID riid, R ** ppv)
{
CComPtr<T> obj;
CComPtr<R> result;
HRESULT hResult;
if (ppv == NULL)
return E_POINTER;
*ppv = NULL;
ATLTRY(obj = new _CComObject<T>);
if (obj.p == NULL)
return E_OUTOFMEMORY;
hResult = obj->QueryInterface(riid, reinterpret_cast<void **>(&result));
if (FAILED(hResult))
return hResult;
hResult = obj->Initialize(initArg1);
if (FAILED(hResult))
return hResult;
*ppv = result.Detach();
return S_OK;
}
template<class T, class T1, class T2, class R>
HRESULT inline ShellObjectCreatorInit(T1 initArg1, T2 initArg2, REFIID riid, R ** ppv)
{
CComPtr<T> obj;
CComPtr<R> result;
HRESULT hResult;
if (ppv == NULL)
return E_POINTER;
*ppv = NULL;
ATLTRY(obj = new _CComObject<T>);
if (obj.p == NULL)
return E_OUTOFMEMORY;
hResult = obj->QueryInterface(riid, reinterpret_cast<void **>(&result));
if (FAILED(hResult))
return hResult;
hResult = obj->Initialize(initArg1, initArg2);
if (FAILED(hResult))
return hResult;
*ppv = result.Detach();
return S_OK;
}
template<class T, class T1, class T2, class T3, class R>
HRESULT inline ShellObjectCreatorInit(T1 initArg1, T2 initArg2, T3 initArg3, REFIID riid, R ** ppv)
{
CComPtr<T> obj;
CComPtr<R> result;
HRESULT hResult;
if (ppv == NULL)
return E_POINTER;
*ppv = NULL;
ATLTRY(obj = new _CComObject<T>);
if (obj.p == NULL)
return E_OUTOFMEMORY;
hResult = obj->QueryInterface(riid, reinterpret_cast<void **>(&result));
if (FAILED(hResult))
return hResult;
hResult = obj->Initialize(initArg1, initArg2, initArg3);
if (FAILED(hResult))
return hResult;
*ppv = result.Detach();
return S_OK;
}
template<class T, class T1, class T2, class T3, class T4, class R>
HRESULT inline ShellObjectCreatorInit(T1 initArg1, T2 initArg2, T3 initArg3, T4 initArg4, REFIID riid, R ** ppv)
{
CComPtr<T> obj;
CComPtr<R> result;
HRESULT hResult;
if (ppv == NULL)
return E_POINTER;
*ppv = NULL;
ATLTRY(obj = new _CComObject<T>);
if (obj.p == NULL)
return E_OUTOFMEMORY;
hResult = obj->QueryInterface(riid, reinterpret_cast<void **>(&result));
if (FAILED(hResult))
return hResult;
hResult = obj->Initialize(initArg1, initArg2, initArg3, initArg4);
if (FAILED(hResult))
return hResult;
*ppv = result.Detach();
return S_OK;
}
template<class T, class T1, class T2, class T3, class T4, class T5, class R>
HRESULT inline ShellObjectCreatorInit(T1 initArg1, T2 initArg2, T3 initArg3, T4 initArg4, T5 initArg5, REFIID riid, R ** ppv)
{
CComPtr<T> obj;
CComPtr<R> result;
HRESULT hResult;
if (ppv == NULL)
return E_POINTER;
*ppv = NULL;
ATLTRY(obj = new _CComObject<T>);
if (obj.p == NULL)
return E_OUTOFMEMORY;
hResult = obj->QueryInterface(riid, reinterpret_cast<void **>(&result));
if (FAILED(hResult))
return hResult;
hResult = obj->Initialize(initArg1, initArg2, initArg3, initArg4, initArg5);
if (FAILED(hResult))
return hResult;
*ppv = result.Detach();
return S_OK;
}
#endif /* __cplusplus */
#endif /* __ROS_SHELL_UTILS_H */
@@ -26,12 +26,6 @@
extern "C" {
#endif /* defined(__cplusplus) */
#ifdef __cplusplus
#define IID_PPV_ARG(Itype, ppType) IID_##Itype, reinterpret_cast<void**>((static_cast<Itype**>(ppType)))
#else
#define IID_PPV_ARG(Itype, ppType) IID_##Itype, (void**)(ppType)
#endif
/*****************************************************************************
* New shellstate structure
*/
@@ -715,353 +709,9 @@ DECLARE_INTERFACE_(ITrayPriv, IUnknown)
#define ITrayPriv_AppendMenu(T,a) (T)->lpVtbl->AppendMenu(T,a)
#endif
/*****************************************************************************
* Shell32 resources
*/
// these resources are in shell32.dll
#define IDB_GOBUTTON_NORMAL 0x0e6
#define IDB_GOBUTTON_HOT 0x0e7
// band ids in internet toolbar
#define ITBBID_MENUBAND 1
#define ITBBID_BRANDBAND 5
#define ITBBID_TOOLSBAND 2
#define ITBBID_ADDRESSBAND 4
// commands in the CGID_PrivCITCommands command group handled by the internet toolbar
// there seems to be some support for hiding the menubar and an auto hide feature that are
// unavailable in the UI
#define ITID_TEXTLABELS 3
#define ITID_TOOLBARBANDSHOWN 4
#define ITID_ADDRESSBANDSHOWN 5
#define ITID_LINKSBANDSHOWN 6
#define ITID_MENUBANDSHOWN 12
#define ITID_AUTOHIDEENABLED 13
#define ITID_CUSTOMIZEENABLED 20
#define ITID_TOOLBARLOCKED 27
// commands in the CGID_BrandCmdGroup command group handled by the brand band
#define BBID_STARTANIMATION 1
#define BBID_STOPANIMATION 2
// undocumented flags for IShellMenu::SetShellFolder
#define SMSET_UNKNOWN08 0x08
#define SMSET_UNKNOWN10 0x10
BOOL WINAPI ILGetDisplayNameEx(IShellFolder *psf, LPCITEMIDLIST pidl, LPVOID path, DWORD type);
/* type parameter for ILGetDisplayNameEx() */
#define ILGDN_FORPARSING 0
#define ILGDN_NORMAL 1
#define ILGDN_INFOLDER 2
BOOL WINAPI FileIconInit(BOOL bFullInit);
void WINAPI ShellDDEInit(BOOL bInit);
DWORD WINAPI WinList_Init(void);
HANDLE WINAPI SHCreateDesktop(IShellDesktopTray*);
BOOL WINAPI SHDesktopMessageLoop(HANDLE);
#define WM_GETISHELLBROWSER (WM_USER+7)
BOOL WINAPI SetShellWindow(HWND);
BOOL WINAPI SetShellWindowEx(HWND, HWND);
BOOL WINAPI RegisterShellHook(HWND, DWORD);
IStream* WINAPI SHGetViewStream(LPCITEMIDLIST, DWORD, LPCTSTR, LPCTSTR, LPCTSTR);
BOOL WINAPI SHIsEmptyStream(IStream*);
typedef struct tagCREATEMRULISTA
{
DWORD cbSize;
DWORD nMaxItems;
DWORD dwFlags;
HKEY hKey;
LPCSTR lpszSubKey;
PROC lpfnCompare;
} CREATEMRULISTA, *LPCREATEMRULISTA;
typedef struct tagCREATEMRULISTW
{
DWORD cbSize;
DWORD nMaxItems;
DWORD dwFlags;
HKEY hKey;
LPCWSTR lpszSubKey;
PROC lpfnCompare;
} CREATEMRULISTW, *LPCREATEMRULISTW;
#define MRU_STRING 0x0
#define MRU_BINARY 0x1
#define MRU_CACHEWRITE 0x2
HANDLE WINAPI CreateMRUListW(LPCREATEMRULISTW);
HANDLE WINAPI CreateMRUListA(LPCREATEMRULISTA);
INT WINAPI AddMRUData(HANDLE,LPCVOID,DWORD);
INT WINAPI FindMRUData(HANDLE,LPCVOID,DWORD,LPINT);
VOID WINAPI FreeMRUList(HANDLE);
INT WINAPI AddMRUStringW(HANDLE hList, LPCWSTR lpszString);
INT WINAPI AddMRUStringA(HANDLE hList, LPCSTR lpszString);
BOOL WINAPI DelMRUString(HANDLE hList, INT nItemPos);
INT WINAPI FindMRUStringW(HANDLE hList, LPCWSTR lpszString, LPINT lpRegNum);
INT WINAPI FindMRUStringA(HANDLE hList, LPCSTR lpszString, LPINT lpRegNum);
HANDLE WINAPI CreateMRUListLazyW(const CREATEMRULISTW *lpcml, DWORD dwParam2,
DWORD dwParam3, DWORD dwParam4);
HANDLE WINAPI CreateMRUListLazyA(const CREATEMRULISTA *lpcml, DWORD dwParam2,
DWORD dwParam3, DWORD dwParam4);
INT WINAPI EnumMRUListW(HANDLE hList, INT nItemPos, LPVOID lpBuffer,
DWORD nBufferSize);
INT WINAPI EnumMRUListA(HANDLE hList, INT nItemPos, LPVOID lpBuffer,
DWORD nBufferSize);
#define DC_NOSENDMSG 0x2000
BOOL WINAPI DrawCaptionTempA(HWND,HDC,const RECT*,HFONT,HICON,LPCSTR,UINT);
BOOL WINAPI DrawCaptionTempW(HWND,HDC,const RECT*,HFONT,HICON,LPCWSTR,UINT);
#ifdef UNICODE
typedef CREATEMRULISTW CREATEMRULIST, *PCREATEMRULIST;
#define CreateMRUList CreateMRUListW
#define DrawCaptionTemp DrawCaptionTempW
#else
typedef CREATEMRULISTA CREATEMRULIST, *PCREATEMRULIST;
#define CreateMRUList CreateMRUListA
#define DrawCaptionTemp DrawCaptionTempA
#endif
HRESULT WINAPI SHInvokeDefaultCommand(HWND,IShellFolder*,LPCITEMIDLIST);
HRESULT WINAPI SHPropertyBag_ReadPOINTL(IPropertyBag*,LPCWSTR,POINTL*);
HRESULT WINAPI SHGetPerScreenResName(OUT LPWSTR lpResName,
IN INT cchResName,
IN DWORD dwReserved);
HRESULT WINAPI SHPropertyBag_ReadStream(IPropertyBag*,LPCWSTR,IStream**);
HWND WINAPI SHCreateWorkerWindowA(LONG wndProc, HWND hWndParent, DWORD dwExStyle,
DWORD dwStyle, HMENU hMenu, LONG z);
HWND WINAPI SHCreateWorkerWindowW(LONG wndProc, HWND hWndParent, DWORD dwExStyle,
DWORD dwStyle, HMENU hMenu, LONG z);
#ifdef UNICODE
#define SHCreateWorkerWindow SHCreateWorkerWindowW
#else
#define SHCreateWorkerWindow SHCreateWorkerWindowA
#endif
/*****************************************************************************
* Shell Link
*/
#include <pshpack1.h>
typedef struct tagSHELL_LINK_HEADER
{
/* The size of this structure (always 0x0000004C) */
DWORD dwSize;
/* CLSID = class identifier (always 00021401-0000-0000-C000-000000000046) */
CLSID clsid;
/* Flags (SHELL_LINK_DATA_FLAGS) */
DWORD dwFlags;
/* Informations about the link target: */
DWORD dwFileAttributes;
FILETIME ftCreationTime;
FILETIME ftLastAccessTime;
FILETIME ftLastWriteTime;
DWORD nFileSizeLow; /* only the least significant 32 bits */
/* The index of an icon (signed?) */
DWORD nIconIndex;
/* The expected window state of an application launched by the link */
DWORD nShowCommand;
/* The keystrokes used to launch the application */
WORD wHotKey;
/* Reserved (must be zero) */
WORD wReserved1;
DWORD dwReserved2;
DWORD dwReserved3;
} SHELL_LINK_HEADER, *LPSHELL_LINK_HEADER;
/*****************************************************************************
* SHELL_LINK_INFOA/W
* If cbHeaderSize == 0x0000001C then use SHELL_LINK_INFOA
* If cbHeaderSize >= 0x00000024 then use SHELL_LINK_INFOW
*/
typedef struct tagSHELL_LINK_INFOA
{
/* Size of the link info data */
DWORD cbSize;
/* Size of this structure (ANSI: = 0x0000001C) */
DWORD cbHeaderSize;
/* Specifies which fields are present/populated (SLI_*) */
DWORD dwFlags;
/* Offset of the VolumeID field (SHELL_LINK_INFO_VOLUME_ID) */
DWORD cbVolumeIDOffset;
/* Offset of the LocalBasePath field (ANSI, NULL-terminated string) */
DWORD cbLocalBasePathOffset;
/* Offset of the CommonNetworkRelativeLink field (SHELL_LINK_INFO_CNR_LINK) */
DWORD cbCommonNetworkRelativeLinkOffset;
/* Offset of the CommonPathSuffix field (ANSI, NULL-terminated string) */
DWORD cbCommonPathSuffixOffset;
} SHELL_LINK_INFOA, *LPSHELL_LINK_INFOA;
typedef struct tagSHELL_LINK_INFOW
{
/* Size of the link info data */
DWORD cbSize;
/* Size of this structure (Unicode: >= 0x00000024) */
DWORD cbHeaderSize;
/* Specifies which fields are present/populated (SLI_*) */
DWORD dwFlags;
/* Offset of the VolumeID field (SHELL_LINK_INFO_VOLUME_ID) */
DWORD cbVolumeIDOffset;
/* Offset of the LocalBasePath field (ANSI, NULL-terminated string) */
DWORD cbLocalBasePathOffset;
/* Offset of the CommonNetworkRelativeLink field (SHELL_LINK_INFO_CNR_LINK) */
DWORD cbCommonNetworkRelativeLinkOffset;
/* Offset of the CommonPathSuffix field (ANSI, NULL-terminated string) */
DWORD cbCommonPathSuffixOffset;
/* Offset of the LocalBasePathUnicode field (Unicode, NULL-terminated string) */
DWORD cbLocalBasePathUnicodeOffset;
/* Offset of the CommonPathSuffixUnicode field (Unicode, NULL-terminated string) */
DWORD cbCommonPathSuffixUnicodeOffset;
} SHELL_LINK_INFOW, *LPSHELL_LINK_INFOW;
/* VolumeID, LocalBasePath, LocalBasePathUnicode(cbHeaderSize >= 0x24) are present */
#define SLI_VALID_LOCAL 0x00000001
/* CommonNetworkRelativeLink is present */
#define SLI_VALID_NETWORK 0x00000002
/*****************************************************************************
* SHELL_LINK_INFO_VOLUME_IDA/W
* If cbVolumeLabelOffset != 0x00000014 (should be 0x00000010) then use
* SHELL_LINK_INFO_VOLUME_IDA
* If cbVolumeLabelOffset == 0x00000014 then use SHELL_LINK_INFO_VOLUME_IDW
*/
typedef struct tagSHELL_LINK_INFO_VOLUME_IDA
{
/* Size of the VolumeID field (> 0x00000010) */
DWORD cbSize;
/* Drive type of the drive the link target is stored on (DRIVE_*) */
DWORD dwDriveType;
/* Serial number of the volume the link target is stored on */
DWORD nDriveSerialNumber;
/* Offset of the volume label (ANSI, NULL-terminated string).
Must be != 0x00000014 (see tagSHELL_LINK_INFO_VOLUME_IDW) */
DWORD cbVolumeLabelOffset;
} SHELL_LINK_INFO_VOLUME_IDA, *LPSHELL_LINK_INFO_VOLUME_IDA;
typedef struct tagSHELL_LINK_INFO_VOLUME_IDW
{
/* Size of the VolumeID field (> 0x00000010) */
DWORD cbSize;
/* Drive type of the drive the link target is stored on (DRIVE_*) */
DWORD dwDriveType;
/* Serial number of the volume the link target is stored on */
DWORD nDriveSerialNumber;
/* Offset of the volume label (ANSI, NULL-terminated string).
If the value of this field is 0x00000014, ignore it and use
cbVolumeLabelUnicodeOffset! */
DWORD cbVolumeLabelOffset;
/* Offset of the volume label (Unicode, NULL-terminated string).
If the value of the VolumeLabelOffset field is not 0x00000014,
this field must be ignored (==> it doesn't exists ==> ANSI). */
DWORD cbVolumeLabelUnicodeOffset;
} SHELL_LINK_INFO_VOLUME_IDW, *LPSHELL_LINK_INFO_VOLUME_IDW;
/*****************************************************************************
* SHELL_LINK_INFO_CNR_LINKA/W (CNR = Common Network Relative)
* If cbNetNameOffset == 0x00000014 then use SHELL_LINK_INFO_CNR_LINKA
* If cbNetNameOffset > 0x00000014 then use SHELL_LINK_INFO_CNR_LINKW
*/
typedef struct tagSHELL_LINK_INFO_CNR_LINKA
{
/* Size of the CommonNetworkRelativeLink field (>= 0x00000014) */
DWORD cbSize;
/* Specifies which fields are present/populated (SLI_CNR_*) */
DWORD dwFlags;
/* Offset of the NetName field (ANSI, NULLterminated string) */
DWORD cbNetNameOffset;
/* Offset of the DeviceName field (ANSI, NULLterminated string) */
DWORD cbDeviceNameOffset;
/* Type of the network provider (WNNC_NET_* defined in winnetwk.h) */
DWORD dwNetworkProviderType;
} SHELL_LINK_INFO_CNR_LINKA, *LPSHELL_LINK_INFO_CNR_LINKA;
typedef struct tagSHELL_LINK_INFO_CNR_LINKW
{
/* Size of the CommonNetworkRelativeLink field (>= 0x00000014) */
DWORD cbSize;
/* Specifies which fields are present/populated (SLI_CNR_*) */
DWORD dwFlags;
/* Offset of the NetName field (ANSI, NULLterminated string) */
DWORD cbNetNameOffset;
/* Offset of the DeviceName field (ANSI, NULLterminated string) */
DWORD cbDeviceNameOffset;
/* Type of the network provider (WNNC_NET_* defined in winnetwk.h) */
DWORD dwNetworkProviderType;
/* Offset of the NetNameUnicode field (Unicode, NULLterminated string) */
DWORD cbNetNameUnicodeOffset;
/* Offset of the DeviceNameUnicode field (Unicode, NULLterminated string) */
DWORD cbDeviceNameUnicodeOffset;
} SHELL_LINK_INFO_CNR_LINKW, *LPSHELL_LINK_INFO_CNR_LINKW;
/* DeviceName is present */
#define SLI_CNR_VALID_DEVICE 0x00000001
/* NetworkProviderType is present */
#define SLI_CNR_VALID_NET_TYPE 0x00000002
/*****************************************************************************
* Shell Link Extra Data (IShellLinkDataList)
*/
typedef struct tagEXP_TRACKER
{
/* .cbSize = 0x00000060, .dwSignature = 0xa0000003 */
DATABLOCK_HEADER dbh;
/* Length >= 0x00000058 */
DWORD nLength;
/* Must be 0x00000000 */
DWORD nVersion;
/* NetBIOS name (ANSI, unused bytes are set to zero) */
CHAR szMachineID[16]; /* "variable" >= 16 (?) */
/* Some GUIDs for the Link Tracking service (from the FS?) */
GUID guidDroidVolume;
GUID guidDroidObject;
GUID guidDroidBirthVolume;
GUID guidDroidBirthObject;
} EXP_TRACKER, *LPEXP_TRACKER;
typedef struct tagEXP_SHIM
{
/* .cbSize >= 0x00000088, .dwSignature = 0xa0000008 */
DATABLOCK_HEADER dbh;
/* Name of a shim layer to apply (Unicode, unused bytes are set to zero) */
WCHAR szwLayerName[64]; /* "variable" >= 64 */
} EXP_SHIM, *LPEXP_SHIM;
typedef struct tagEXP_KNOWN_FOLDER
{
/* .cbSize = 0x0000001c, .dwSignature = 0xa000000b */
DATABLOCK_HEADER dbh;
/* A GUID value that identifies a known folder */
GUID guidKnownFolder;
/* Specifies the location of the ItemID of the first child
segment of the IDList specified by guidKnownFolder */
DWORD cbOffset;
} EXP_KNOWN_FOLDER, *LPEXP_KNOWN_FOLDER;
typedef struct tagEXP_VISTA_ID_LIST
{
/* .cbSize >= 0x0000000a, .dwSignature = 0xa000000c */
DATABLOCK_HEADER dbh;
/* Specifies an alternate IDList that can be used instead
of the "normal" IDList (SLDF_HAS_ID_LIST) */
/* LPITEMIDLIST pIDList; (variable) */
} EXP_VISTA_ID_LIST, *LPEXP_VISTA_ID_LIST;
#define EXP_TRACKER_SIG 0xa0000003
#define EXP_SHIM_SIG 0xa0000008
#define EXP_KNOWN_FOLDER_SIG 0xa000000b
#define EXP_VISTA_ID_LIST_SIG 0xa000000c
#include <poppack.h>
#ifdef __cplusplus
} /* extern "C" */
#endif /* defined(__cplusplus) */
@@ -25,26 +25,6 @@
extern "C" {
#endif /* defined(__cplusplus) */
struct IEThreadParamBlock
{
long offset0;
long offset4;
long offset8;
IUnknown *offsetC;
long offset10;
IUnknown *offset14;
LPITEMIDLIST directoryPIDL;
char filler1[84]; // unknown contents
IUnknown *offset70;
long filler2; // unknown contents
IUnknown *offset78;
LPITEMIDLIST offset7C;
LPITEMIDLIST offset80;
char filler3[116]; // unknown contents
IUnknown *offsetF8; // instance explorer
long filler4; // unknown contents
};
BOOL WINAPI SHAboutInfoA(LPSTR lpszDest, DWORD dwDestLen);
BOOL WINAPI SHAboutInfoW(LPWSTR lpszDest, DWORD dwDestLen);
HRESULT WINAPI IUnknown_QueryStatus(IUnknown *lpUnknown, REFGUID pguidCmdGroup, ULONG cCmds, OLECMD *prgCmds, OLECMDTEXT* pCmdText);
@@ -58,6 +38,7 @@ HRESULT WINAPI IUnknown_SetOwner(IUnknown *pUnk, ULONG arg);
HRESULT WINAPI IUnknown_SetSite(IUnknown *obj, IUnknown *site);
HRESULT WINAPI IUnknown_GetClassID(IUnknown *lpUnknown, CLSID *lpClassId);
HRESULT WINAPI IUnknown_QueryService(IUnknown* lpUnknown, REFGUID sid, REFIID riid, LPVOID *lppOut);
HRESULT WINAPI IUnknown_QueryServiceExec(IUnknown *lpUnknown, REFIID service, const GUID *group, DWORD cmdId, DWORD cmdOpt, VARIANT *pIn, VARIANT *pOut);
HRESULT WINAPI IUnknown_UIActivateIO(IUnknown *unknown, BOOL activate, LPMSG msg);
BOOL WINAPI SHLoadMenuPopup(HINSTANCE hInst, LPCWSTR szName);
void WINAPI SHPropagateMessage(HWND hWnd, UINT uiMsgId, WPARAM wParam, LPARAM lParam, BOOL bSend);
@@ -81,31 +62,27 @@ HRESULT WINAPI MayExecForward(IUnknown* lpUnknown, INT iUnk, REFGUID pguidCmdGro
HRESULT WINAPI IsQSForward(REFGUID pguidCmdGroup,ULONG cCmds, OLECMD *prgCmds);
BOOL WINAPI SHIsChildOrSelf(HWND hParent, HWND hChild);
void WINAPI InitOCHostClass(long param8);
long WINAPI SHOpenFolderWindow(IEThreadParamBlock *param8);
void WINAPI SHCreateSavedWindows(void);
long WINAPI SHCreateFromDesktop(long param8);
long WINAPI SHExplorerParseCmdLine(LPCTSTR commandLine);
void WINAPI UEMRegisterNotify(long param8, long paramC);
HRESULT WINAPI SHCreateBandForPidl(LPCITEMIDLIST param8, IUnknown *paramC, BOOL param10);
HRESULT WINAPI SHPidlFromDataObject(IDataObject *param8, long *paramC, long param10, FILEDESCRIPTORW *param14);
long WINAPI IDataObject_GetDeskBandState(long param8);
IEThreadParamBlock *WINAPI SHCreateIETHREADPARAM(long param8, long paramC, IUnknown *param10, IUnknown *param14);
IEThreadParamBlock *WINAPI SHCloneIETHREADPARAM(IEThreadParamBlock *param);
long WINAPI SHParseIECommandLine(long param8, long paramC);
void WINAPI SHDestroyIETHREADPARAM(IEThreadParamBlock *param);
HRESULT WINAPI SHOnCWMCommandLine(long param8);
LPITEMIDLIST WINAPI Channel_GetFolderPidl(void);
IUnknown *WINAPI ChannelBand_Create(LPITEMIDLIST pidl);
HRESULT WINAPI Channels_SetBandInfoSFB(IUnknown *param8);
HRESULT WINAPI IUnknown_SetBandInfoSFB(IUnknown *param8, long paramC);
HRESULT WINAPI Channel_QuickLaunch(void);
HRESULT WINAPI SHGetNavigateTarget(long param8, long paramC, long param10, long param14);
HRESULT WINAPI GetInfoTip(IUnknown *param8, long paramC, LPTSTR *param10, long cchMax);
HRESULT WINAPI SHEnumClassesOfCategories(long param8, long paramC, long param10, long param14, long param18);
HRESULT WINAPI SHWriteClassesOfCategories(long param8, long paramC, long param10, long param14, long param18, long param1C, long param20);
BOOL WINAPI SHIsExplorerBrowser();
HRESULT WINAPI SHOpenNewFrame(LPITEMIDLIST pidl, IUnknown *paramC, long param10, long param14);
BOOL WINAPI SHIsEmptyStream(IStream*);
HRESULT WINAPI SHInvokeDefaultCommand(HWND,IShellFolder*,LPCITEMIDLIST);
HRESULT WINAPI SHPropertyBag_ReadPOINTL(IPropertyBag*,LPCWSTR,POINTL*);
HRESULT WINAPI SHGetPerScreenResName(OUT LPWSTR lpResName,
IN INT cchResName,
IN DWORD dwReserved);
HRESULT WINAPI SHPropertyBag_ReadStream(IPropertyBag*,LPCWSTR,IStream**);
HWND WINAPI SHCreateWorkerWindowA(LONG wndProc, HWND hWndParent, DWORD dwExStyle,
DWORD dwStyle, HMENU hMenu, LONG z);
HWND WINAPI SHCreateWorkerWindowW(LONG wndProc, HWND hWndParent, DWORD dwExStyle,
DWORD dwStyle, HMENU hMenu, LONG z);
#ifdef UNICODE
#define SHCreateWorkerWindow SHCreateWorkerWindowW
#else
#define SHCreateWorkerWindow SHCreateWorkerWindowA
#endif
#ifdef __cplusplus
} /* extern "C" */
+7 -1
View File
@@ -1,13 +1,19 @@
#include <stdarg.h>
#define WIN32_NO_STATUS
#include <windef.h>
#include <winbase.h>
#include <wine/config.h>
#include <wine/exception.h>
ULONG __cdecl DbgPrint(_In_z_ _Printf_format_string_ PCSTR Format, ...);
VOID
WINAPI
RaiseException(_In_ DWORD dwExceptionCode,
_In_ DWORD dwExceptionFlags,
_In_ DWORD nNumberOfArguments,
_In_ CONST ULONG_PTR *lpArguments OPTIONAL);
#define __wine_spec_unimplemented_stub(module, function) \
{ \
ULONG_PTR args[2]; \
+38 -9
View File
@@ -21,6 +21,8 @@ typedef enum _LSA_API_NUMBER
LSASS_REQUEST_DEREGISTER_LOGON_PROCESS,
LSASS_REQUEST_LOGON_USER,
LSASS_REQUEST_LOOKUP_AUTHENTICATION_PACKAGE,
LSASS_REQUEST_ENUM_LOGON_SESSIONS,
LSASS_REQUEST_GET_LOGON_SESSION_DATA,
LSASS_REQUEST_MAXIMUM
} LSA_API_NUMBER, *PLSA_API_NUMBER;
@@ -31,6 +33,7 @@ typedef struct _LSA_CONNECTION_INFO
LSA_OPERATIONAL_MODE OperationalMode;
ULONG Length;
CHAR LogonProcessNameBuffer[LSASS_MAX_LOGON_PROCESS_NAME_LENGTH + 1];
BOOL CreateContext;
} LSA_CONNECTION_INFO, *PLSA_CONNECTION_INFO;
@@ -69,21 +72,12 @@ typedef struct _LSA_CALL_AUTHENTICATION_PACKAGE_MSG
{
struct
{
#if 0
ULONG AuthenticationPackage;
ULONG InBufferLength;
UCHAR InBuffer[0];
#endif
ULONG AuthenticationPackage;
PVOID ProtocolSubmitBuffer;
ULONG SubmitBufferLength;
} Request;
struct
{
#if 0
ULONG OutBufferLength;
UCHAR OutBuffer[0];
#endif
PVOID ProtocolReturnBuffer;
ULONG ReturnBufferLength;
NTSTATUS ProtocolStatus;
@@ -125,6 +119,39 @@ typedef struct _LSA_LOOKUP_AUTHENTICATION_PACKAGE_MSG
} LSA_LOOKUP_AUTHENTICATION_PACKAGE_MSG, *PLSA_LOOKUP_AUTHENTICATION_PACKAGE_MSG;
typedef struct _LSA_ENUM_LOGON_SESSIONS_MSG
{
union
{
struct
{
ULONG Dummy;
} Request;
struct
{
ULONG LogonSessionCount;
PVOID LogonSessionBuffer;
} Reply;
};
} LSA_ENUM_LOGON_SESSIONS_MSG, *PLSA_ENUM_LOGON_SESSIONS_MSG;
typedef struct _LSA_GET_LOGON_SESSION_DATA_MSG
{
union
{
struct
{
LUID LogonId;
} Request;
struct
{
PVOID SessionDataBuffer;
} Reply;
};
} LSA_GET_LOGON_SESSION_DATA_MSG, *PLSA_GET_LOGON_SESSION_DATA_MSG;
typedef struct _LSA_API_MSG
{
PORT_MESSAGE h;
@@ -141,6 +168,8 @@ typedef struct _LSA_API_MSG
LSA_CALL_AUTHENTICATION_PACKAGE_MSG CallAuthenticationPackage;
LSA_DEREGISTER_LOGON_PROCESS_MSG DeregisterLogonProcess;
LSA_LOOKUP_AUTHENTICATION_PACKAGE_MSG LookupAuthenticationPackage;
LSA_ENUM_LOGON_SESSIONS_MSG EnumLogonSessions;
LSA_GET_LOGON_SESSION_DATA_MSG GetLogonSessionData;
};
};
};
+8 -1
View File
@@ -158,6 +158,13 @@ typedef struct _CONSOLE_PROPERTIES
UINT uCodePage;
} CONSOLE_PROPERTIES;
enum
{
INIT_SUCCESS, // STATUS_WAIT_0
INIT_FAILURE, // STATUS_WAIT_1
MAX_INIT_EVENTS
};
typedef struct _CONSOLE_START_INFO
{
HANDLE ConsoleHandle;
@@ -165,7 +172,7 @@ typedef struct _CONSOLE_START_INFO
HANDLE InputHandle;
HANDLE OutputHandle;
HANDLE ErrorHandle;
HANDLE Events[2];
HANDLE InitEvents[MAX_INIT_EVENTS];
CONSOLE_PROPERTIES;
} CONSOLE_START_INFO, *PCONSOLE_START_INFO;
+22 -5
View File
@@ -36,18 +36,33 @@ typedef enum _USERSRV_API_NUMBER
} USERSRV_API_NUMBER, *PUSERSRV_API_NUMBER;
typedef struct
typedef struct _USER_EXIT_REACTOS
{
UINT Flags;
DWORD Reserved;
DWORD LastError;
UINT Flags;
BOOL Success;
} USER_EXIT_REACTOS, *PUSER_EXIT_REACTOS;
typedef struct
typedef struct _USER_END_TASK
{
DWORD LastError;
HWND WndHandle;
BOOL Force;
BOOL Success;
} USER_END_TASK, *PUSER_END_TASK;
typedef struct _USER_GET_THREAD_CONSOLE_DESKTOP
{
ULONG_PTR ThreadId;
HANDLE ConsoleDesktop;
} USER_GET_THREAD_CONSOLE_DESKTOP, *PUSER_GET_THREAD_CONSOLE_DESKTOP;
typedef struct _USER_REGISTER_SERVICES_PROCESS
{
ULONG_PTR ProcessId;
} USER_REGISTER_SERVICES_PROCESS, *PUSER_REGISTER_SERVICES_PROCESS;
typedef struct
typedef struct _USER_REGISTER_LOGON_PROCESS
{
ULONG_PTR ProcessId;
BOOL Register;
@@ -65,6 +80,8 @@ typedef struct _USER_API_MESSAGE
union
{
USER_EXIT_REACTOS ExitReactosRequest;
USER_END_TASK EndTaskRequest;
USER_GET_THREAD_CONSOLE_DESKTOP GetThreadConsoleDesktopRequest;
USER_REGISTER_SERVICES_PROCESS RegisterServicesProcessRequest;
USER_REGISTER_LOGON_PROCESS RegisterLogonProcessRequest;
} Data;
+5
View File
@@ -0,0 +1,5 @@
#pragma once
/* Ioctl called by GetInterfaceInfo. Returns IP_INTERFACE_INFO structure. */
#define IOCTL_IP_INTERFACE_INFO _TCP_CTL_CODE(0x10, METHOD_BUFFERED, FILE_ANY_ACCESS)
+936
View File
@@ -0,0 +1,936 @@
/*
* Copyright 1999, 2000 Juergen Schmied
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef __WINE_UNDOCSHELL_H
#define __WINE_UNDOCSHELL_H
#ifdef __cplusplus
extern "C" {
#endif /* defined(__cplusplus) */
/****************************************************************************
* Taskbar WM_COMMAND identifiers
*/
#define TWM_DOEXITWINDOWS (WM_USER + 342)
#define TWM_CYCLEFOCUS (WM_USER + 348)
/****************************************************************************
* IDList Functions
*/
BOOL WINAPI ILGetDisplayName(
LPCITEMIDLIST pidl,
LPVOID path);
/* type parameter for ILGetDisplayNameEx() */
#define ILGDN_FORPARSING 0
#define ILGDN_NORMAL 1
#define ILGDN_INFOLDER 2
BOOL WINAPI ILGetDisplayNameEx(
LPSHELLFOLDER psf,
LPCITEMIDLIST pidl,
LPVOID path,
DWORD type);
LPITEMIDLIST WINAPI ILGlobalClone(LPCITEMIDLIST pidl);
void WINAPI ILGlobalFree(LPITEMIDLIST pidl);
LPITEMIDLIST WINAPI SHSimpleIDListFromPathA (LPCSTR lpszPath); //FIXME
LPITEMIDLIST WINAPI SHSimpleIDListFromPathW (LPCWSTR lpszPath);
HRESULT WINAPI SHILCreateFromPathA (
LPCSTR path,
LPITEMIDLIST * ppidl,
DWORD *attributes);
HRESULT WINAPI SHILCreateFromPathW (
LPCWSTR path,
LPITEMIDLIST * ppidl,
DWORD *attributes);
/*
string functions
*/
BOOL WINAPI StrRetToStrNA(LPSTR,DWORD,LPSTRRET,const ITEMIDLIST*);
BOOL WINAPI StrRetToStrNW(LPWSTR,DWORD,LPSTRRET,const ITEMIDLIST*);
/****************************************************************************
* SHChangeNotifyRegister API
*/
#define SHCNRF_InterruptLevel 0x0001
#define SHCNRF_ShellLevel 0x0002
#define SHCNRF_RecursiveInterrupt 0x1000 /* Must be combined with SHCNRF_InterruptLevel */
#define SHCNRF_NewDelivery 0x8000 /* Messages use shared memory */
/****************************************************************************
* Shell Common Dialogs
*/
/* RunFileDlg flags */
#define RFF_NOBROWSE 0x01
#define RFF_NODEFAULT 0x02
#define RFF_CALCDIRECTORY 0x04
#define RFF_NOLABEL 0x08
#define RFF_NOSEPARATEMEM 0x20 /* NT only */
#define DE_SAMEFILE 0x71
#define DE_DESTSAMETREE 0x7D
/* RunFileFlg notification structure */
typedef struct
{
NMHDR hdr;
LPCSTR lpFile;
LPCSTR lpDirectory;
int nShow;
} NM_RUNFILEDLG, * LPNM_RUNFILEDLG;
/* RunFileDlg notification return values */
#define RF_OK 0x00
#define RF_CANCEL 0x01
#define RF_RETRY 0x02
void WINAPI RunFileDlg(
HWND hwndOwner,
HICON hIcon,
LPCWSTR lpstrDirectory,
LPCWSTR lpstrTitle,
LPCWSTR lpstrDescription,
UINT uFlags);
void WINAPI ExitWindowsDialog(HWND hwndOwner);
BOOL WINAPI SHFindComputer(
LPCITEMIDLIST pidlRoot,
LPCITEMIDLIST pidlSavedSearch);
void WINAPI SHHandleDiskFull(HWND hwndOwner,
UINT uDrive);
int WINAPI SHOutOfMemoryMessageBox(
HWND hwndOwner,
LPCSTR lpCaption,
UINT uType);
DWORD WINAPI SHNetConnectionDialog(
HWND hwndOwner,
LPCWSTR lpstrRemoteName,
DWORD dwType);
/****************************************************************************
* Cabinet Window Messages
*/
#define CWM_SETPATH (WM_USER + 2)
#define CWM_WANTIDLE (WM_USER + 3)
#define CWM_GETSETCURRENTINFO (WM_USER + 4)
#define CWM_SELECTITEM (WM_USER + 5)
#define CWM_SELECTITEMSTR (WM_USER + 6)
#define CWM_GETISHELLBROWSER (WM_USER + 7)
#define CWM_TESTPATH (WM_USER + 9)
#define CWM_STATECHANGE (WM_USER + 10)
#define CWM_GETPATH (WM_USER + 12)
#define WM_GETISHELLBROWSER CWM_GETISHELLBROWSER
/* CWM_TESTPATH types */
#define CWTP_ISEQUAL 0
#define CWTP_ISCHILD 1
/* CWM_TESTPATH structure */
typedef struct
{
DWORD dwType;
ITEMIDLIST idl;
} CWTESTPATHSTRUCT,* LPCWTESTPATHSTRUCT;
/****************************************************************************
* System Imagelist Routines
*/
int WINAPI Shell_GetCachedImageIndexA(
LPCSTR lpszFileName,
int nIconIndex,
UINT bSimulateDoc);
BOOL WINAPI Shell_GetImageLists(
HIMAGELIST *lphimlLarge,
HIMAGELIST *lphimlSmall);
HICON WINAPI SHGetFileIcon(
DWORD dwReserved,
LPCSTR lpszPath,
DWORD dwFileAttributes,
UINT uFlags);
BOOL WINAPI FileIconInit(BOOL bFullInit);
/****************************************************************************
* File Menu Routines
*/
/* FileMenu_Create nSelHeight constants */
#define FM_DEFAULT_SELHEIGHT -1
#define FM_FULL_SELHEIGHT 0
/* FileMenu_Create flags */
#define FMF_SMALL_ICONS 0x00
#define FMF_LARGE_ICONS 0x08
#define FMF_NO_COLUMN_BREAK 0x10
HMENU WINAPI FileMenu_Create(
COLORREF crBorderColor,
int nBorderWidth,
HBITMAP hBorderBmp,
int nSelHeight,
UINT uFlags);
void WINAPI FileMenu_Destroy(HMENU hMenu);
/* FileMenu_AppendItem constants */
#define FM_SEPARATOR (LPCSTR)1
#define FM_BLANK_ICON -1
#define FM_DEFAULT_HEIGHT 0
BOOL WINAPI FileMenu_AppendItem(
HMENU hMenu,
LPCSTR lpszText,
UINT uID,
int iIcon,
HMENU hMenuPopup,
int nItemHeight);
/* FileMenu_InsertUsingPidl flags */
#define FMF_NO_EMPTY_ITEM 0x01
#define FMF_NO_PROGRAM_GROUPS 0x04
/* FileMenu_InsertUsingPidl callback function */
typedef void (CALLBACK *LPFNFMCALLBACK)(LPCITEMIDLIST pidlFolder, LPCITEMIDLIST pidlFile);
int WINAPI FileMenu_InsertUsingPidl(
HMENU hMenu,
UINT uID,
LPCITEMIDLIST pidl,
UINT uFlags,
UINT uEnumFlags,
LPFNFMCALLBACK lpfnCallback);
int WINAPI FileMenu_ReplaceUsingPidl(
HMENU hMenu,
UINT uID,
LPCITEMIDLIST pidl,
UINT uEnumFlags,
LPFNFMCALLBACK lpfnCallback);
void WINAPI FileMenu_Invalidate(HMENU hMenu);
HMENU WINAPI FileMenu_FindSubMenuByPidl(
HMENU hMenu,
LPCITEMIDLIST pidl);
BOOL WINAPI FileMenu_TrackPopupMenuEx(
HMENU hMenu,
UINT uFlags,
int x,
int y,
HWND hWnd,
LPTPMPARAMS lptpm);
BOOL WINAPI FileMenu_GetLastSelectedItemPidls(
UINT uReserved,
LPCITEMIDLIST *ppidlFolder,
LPCITEMIDLIST *ppidlItem);
LRESULT WINAPI FileMenu_MeasureItem(
HWND hWnd,
LPMEASUREITEMSTRUCT lpmis);
LRESULT WINAPI FileMenu_DrawItem(
HWND hWnd,
LPDRAWITEMSTRUCT lpdis);
BOOL WINAPI FileMenu_InitMenuPopup(HMENU hMenu);
void WINAPI FileMenu_AbortInitMenu(void);
LRESULT WINAPI FileMenu_HandleMenuChar(
HMENU hMenu,
WPARAM wParam);
BOOL WINAPI FileMenu_DeleteAllItems(HMENU hMenu);
BOOL WINAPI FileMenu_DeleteItemByCmd(
HMENU hMenu,
UINT uID);
BOOL WINAPI FileMenu_DeleteItemByIndex(
HMENU hMenu,
UINT uPos);
BOOL WINAPI FileMenu_DeleteMenuItemByFirstID(
HMENU hMenu,
UINT uID);
BOOL WINAPI FileMenu_DeleteSeparator(HMENU hMenu);
BOOL WINAPI FileMenu_EnableItemByCmd(
HMENU hMenu,
UINT uID,
BOOL bEnable);
DWORD WINAPI FileMenu_GetItemExtent(
HMENU hMenu,
UINT uPos);
int WINAPI FileMenu_AppendFilesForPidl(
HMENU hMenu,
LPCITEMIDLIST pidl,
BOOL bAddSeparator);
int WINAPI FileMenu_AddFilesForPidl(
HMENU hMenu,
UINT uReserved,
UINT uID,
LPCITEMIDLIST pidl,
UINT uFlags,
UINT uEnumFlags,
LPFNFMCALLBACK lpfnCallback);
/****************************************************************************
* Drag And Drop Routines
*/
HRESULT WINAPI SHRegisterDragDrop(
HWND hWnd,
LPDROPTARGET lpDropTarget);
HRESULT WINAPI SHRevokeDragDrop(HWND hWnd);
BOOL WINAPI DAD_DragEnter(HWND hWnd);
BOOL WINAPI DAD_SetDragImageFromListView(
HWND hWnd,
POINT pt);
BOOL WINAPI DAD_ShowDragImage(BOOL bShow);
/****************************************************************************
* Path Manipulation Routines
*/
BOOL WINAPI PathAppendAW(LPVOID lpszPath1, LPCVOID lpszPath2);
LPVOID WINAPI PathCombineAW(LPVOID szDest, LPCVOID lpszDir, LPCVOID lpszFile);
LPVOID WINAPI PathAddBackslashAW(LPVOID path);
LPVOID WINAPI PathBuildRootAW(LPVOID lpszPath, int drive);
LPVOID WINAPI PathFindExtensionAW(LPCVOID path);
LPVOID WINAPI PathFindFileNameAW(LPCVOID path);
LPVOID WINAPI PathGetExtensionAW(LPCVOID lpszPath, DWORD void1, DWORD void2);
LPVOID WINAPI PathGetArgsAW(LPVOID lpszPath);
BOOL WINAPI PathRemoveFileSpecAW(LPVOID lpszPath);
void WINAPI PathRemoveBlanksAW(LPVOID lpszPath);
VOID WINAPI PathQuoteSpacesAW(LPVOID path);
void WINAPI PathUnquoteSpacesAW(LPVOID lpszPath);
BOOL WINAPI PathIsUNCAW(LPCVOID lpszPath);
BOOL WINAPI PathIsRelativeAW(LPCVOID lpszPath);
BOOL WINAPI PathIsRootAW(LPCVOID x);
BOOL WINAPI PathIsExeAW(LPCVOID lpszPath);
BOOL WINAPI PathIsDirectoryAW(LPCVOID lpszPath);
BOOL WINAPI PathFileExistsAW(LPCVOID lpszPath);
BOOL WINAPI PathMatchSpecAW(LPVOID lpszPath, LPVOID lpszSpec);
BOOL WINAPI PathMakeUniqueNameAW(
LPVOID lpszBuffer,
DWORD dwBuffSize,
LPCVOID lpszShortName,
LPCVOID lpszLongName,
LPCVOID lpszPathName);
BOOL WINAPI PathYetAnotherMakeUniqueName(
LPWSTR lpszBuffer,
LPCWSTR lpszPathName,
LPCWSTR lpszShortName,
LPCWSTR lpszLongName);
BOOL WINAPI PathQualifyAW(LPCVOID path);
/* PathResolve flags */
#define PRF_CHECKEXISTANCE 0x01
#define PRF_EXECUTABLE 0x02
#define PRF_QUALIFYONPATH 0x04
#define PRF_WINDOWS31 0x08
BOOL WINAPI PathResolveAW(LPVOID lpszPath, LPCVOID *alpszPaths, DWORD dwFlags);
VOID WINAPI PathSetDlgItemPathAW(HWND hDlg, int nIDDlgItem, LPCVOID lpszPath);
/* PathProcessCommand flags */
#define PPCF_QUOTEPATH 0x01 /* implies PPCF_INCLUDEARGS */
#define PPCF_INCLUDEARGS 0x02
//#define PPCF_NODIRECTORIES 0x10 move to shlobj
#define PPCF_DONTRESOLVE 0x20
#define PPCF_PATHISRELATIVE 0x40
HRESULT WINAPI PathProcessCommandAW(LPCVOID lpszPath, LPVOID lpszBuff,
DWORD dwBuffSize, DWORD dwFlags);
void WINAPI PathStripPathAW(LPVOID lpszPath);
BOOL WINAPI PathStripToRootAW(LPVOID lpszPath);
void WINAPI PathRemoveArgsAW(LPVOID lpszPath);
void WINAPI PathRemoveExtensionAW(LPVOID lpszPath);
int WINAPI PathParseIconLocationAW(LPVOID lpszPath);
BOOL WINAPI PathIsSameRootAW(LPCVOID lpszPath1, LPCVOID lpszPath2);
BOOL WINAPI PathFindOnPathAW(LPVOID sFile, LPCVOID *sOtherDirs);
/****************************************************************************
* Shell Namespace Routines
*/
/* Generic structure used by several messages */
typedef struct
{
DWORD dwReserved;
DWORD dwReserved2;
LPCITEMIDLIST pidl;
LPDWORD lpdwUser;
} SFVCBINFO, * LPSFVCBINFO;
typedef const SFVCBINFO * LPCSFVCBINFO;
/* SFVCB_SELECTIONCHANGED structure */
typedef struct
{
UINT uOldState;
UINT uNewState;
LPCITEMIDLIST pidl;
LPDWORD lpdwUser;
} SFVSELECTSTATE, * LPSFVSELECTSTATE;
typedef const SFVSELECTSTATE * LPCSFVSELECTSTATE;
/* SFVCB_COPYHOOKCALLBACK structure */
typedef struct
{
HWND hwnd;
UINT wFunc;
UINT wFlags;
LPCSTR pszSrcFile;
DWORD dwSrcAttribs;
LPCSTR pszDestFile;
DWORD dwDestAttribs;
} SFVCOPYHOOKINFO, * LPSFVCOPYHOOKINFO;
typedef const SFVCOPYHOOKINFO * LPCSFVCOPYHOOKINFO;
/* SFVCB_GETDETAILSOF structure */
typedef struct
{
LPCITEMIDLIST pidl;
int fmt;
int cx;
STRRET lpText;
} SFVCOLUMNINFO, * LPSFVCOLUMNINFO;
/****************************************************************************
* Misc Stuff
*/
/* SHWaitForFileToOpen flags */
#define SHWFF_ADD 0x01
#define SHWFF_REMOVE 0x02
#define SHWFF_WAIT 0x04
BOOL WINAPI SHWaitForFileToOpen(
LPCITEMIDLIST pidl,
DWORD dwFlags,
DWORD dwTimeout);
WORD WINAPI ArrangeWindows(
HWND hwndParent,
DWORD dwReserved,
LPCRECT lpRect,
WORD cKids,
CONST HWND * lpKids);
/* RegisterShellHook types */
#define RSH_DEREGISTER 0
#define RSH_REGISTER 1
#define RSH_REGISTER_PROGMAN 2
#define RSH_REGISTER_TASKMAN 3
BOOL WINAPI RegisterShellHook(
HWND hWnd,
DWORD dwType);
/* SHCreateDefClassObject callback function */
typedef HRESULT (CALLBACK *LPFNCDCOCALLBACK)(
LPUNKNOWN pUnkOuter,
REFIID riidObject,
LPVOID *ppvObject);
HRESULT WINAPI SHCreateDefClassObject(
REFIID riidFactory,
LPVOID *ppvFactory,
LPFNCDCOCALLBACK lpfnCallback,
LPDWORD lpdwUsage,
REFIID riidObject);
void WINAPI SHFreeUnusedLibraries(void);
/* SHCreateLinks flags */
#define SHCLF_PREFIXNAME 0x01
#define SHCLF_CREATEONDESKTOP 0x02
HRESULT WINAPI SHCreateLinks(
HWND hWnd,
LPCSTR lpszDir,
LPDATAOBJECT lpDataObject,
UINT uFlags,
LPITEMIDLIST *lppidlLinks);
DWORD WINAPI CheckEscapesA(LPSTR string, DWORD len);
DWORD WINAPI CheckEscapesW(LPWSTR string, DWORD len);
/* policy functions */
BOOL WINAPI SHInitRestricted(LPCVOID unused, LPCVOID inpRegKey);
#define CSIDL_FOLDER_MASK 0x00ff
/* Utility functions */
#include <stdio.h>
#define SMC_EXEC 4
INT WINAPI Shell_GetCachedImageIndex(LPCWSTR szPath, INT nIndex, UINT bSimulateDoc);
static inline ULONG
Win32DbgPrint(const char *filename, int line, const char *lpFormat, ...)
{
char szMsg[512];
char *szMsgStart;
const char *fname;
va_list vl;
ULONG uRet;
fname = strrchr(filename, '\\');
if (fname == NULL)
{
fname = strrchr(filename, '/');
if (fname != NULL)
fname++;
}
else
fname++;
if (fname == NULL)
fname = filename;
szMsgStart = szMsg + sprintf(szMsg, "%s:%d: ", fname, line);
va_start(vl, lpFormat);
uRet = (ULONG) vsprintf(szMsgStart, lpFormat, vl);
va_end(vl);
OutputDebugStringA(szMsg);
return uRet;
}
#define DbgPrint(fmt, ...) \
Win32DbgPrint(__FILE__, __LINE__, fmt, ##__VA_ARGS__)
static inline void DbgDumpMenuInternal(HMENU hmenu, char* padding, int padlevel)
{
WCHAR label[128];
int i;
int count = GetMenuItemCount(hmenu);
padding[padlevel] = '.';
padding[padlevel + 1] = '.';
padding[padlevel + 2] = 0;
for (i = 0; i < count; i++)
{
MENUITEMINFOW mii = { 0 };
mii.cbSize = sizeof(mii);
mii.fMask = MIIM_STRING | MIIM_FTYPE | MIIM_SUBMENU | MIIM_STATE | MIIM_ID;
mii.dwTypeData = label;
mii.cch = _countof(label);
GetMenuItemInfo(hmenu, i, TRUE, &mii);
if (mii.fType & MFT_BITMAP)
DbgPrint("%s%2d - %08x: BITMAP %08p (state=%d, has submenu=%s)\n", padding, i, mii.wID, mii.hbmpItem, mii.fState, mii.hSubMenu ? "TRUE" : "FALSE");
else if (mii.fType & MFT_SEPARATOR)
DbgPrint("%s%2d - %08x ---SEPARATOR---\n", padding, i, mii.wID);
else
DbgPrint("%s%2d - %08x: %S (state=%d, has submenu=%s)\n", padding, i, mii.wID, mii.dwTypeData, mii.fState, mii.hSubMenu ? "TRUE" : "FALSE");
if (mii.hSubMenu)
DbgDumpMenuInternal(mii.hSubMenu, padding, padlevel + 2);
}
padding[padlevel] = 0;
}
static __inline void DbgDumpMenu(HMENU hmenu)
{
char padding[128];
DbgDumpMenuInternal(hmenu, padding, 0);
}
static inline
void DumpIdList(LPCITEMIDLIST pcidl)
{
DbgPrint("Begin IDList Dump\n");
for (; pcidl != NULL; pcidl = ILGetNext(pcidl))
{
int i;
int cb = pcidl->mkid.cb;
BYTE * sh = (BYTE*) &(pcidl->mkid);
if (cb == 0) // ITEMIDLISTs are terminatedwith a null SHITEMID.
break;
DbgPrint("Begin SHITEMID (cb=%d)\n", cb);
if ((cb & 3) != 0)
DbgPrint(" - WARNING: cb is not a multiple of 4\n");
for (i = 0; (i + 4) <= cb; i += 4)
{
DbgPrint(" - abID[%08x]: %02x %02x %02x %02x\n",
i,
sh[i + 0],
sh[i + 1],
sh[i + 2],
sh[i + 3]);
}
if (i < cb)
{
cb -= i;
if (cb == 3)
{
DbgPrint(" - abID[%08x]: %02x %02x %02x --\n",
i,
sh[i + 0],
sh[i + 1],
sh[i + 2]);
}
else if (cb == 2)
{
DbgPrint(" - abID[%08x]: %02x %02x -- --\n",
i,
sh[i + 0],
sh[i + 1]);
}
else if (cb == 1)
{
DbgPrint(" - abID[%08x]: %02x -- -- --\n",
i,
sh[i + 0]);
}
}
DbgPrint("End SHITEMID\n");
}
DbgPrint("End IDList Dump.\n");
}
/*****************************************************************************
* Shell32 resources
*/
// these resources are in shell32.dll
#define IDB_GOBUTTON_NORMAL 0x0e6
#define IDB_GOBUTTON_HOT 0x0e7
// band ids in internet toolbar
#define ITBBID_MENUBAND 1
#define ITBBID_BRANDBAND 5
#define ITBBID_TOOLSBAND 2
#define ITBBID_ADDRESSBAND 4
// commands in the CGID_PrivCITCommands command group handled by the internet toolbar
// there seems to be some support for hiding the menubar and an auto hide feature that are
// unavailable in the UI
#define ITID_TEXTLABELS 3
#define ITID_TOOLBARBANDSHOWN 4
#define ITID_ADDRESSBANDSHOWN 5
#define ITID_LINKSBANDSHOWN 6
#define ITID_MENUBANDSHOWN 12
#define ITID_AUTOHIDEENABLED 13
#define ITID_CUSTOMIZEENABLED 20
#define ITID_TOOLBARLOCKED 27
// commands in the CGID_BrandCmdGroup command group handled by the brand band
#define BBID_STARTANIMATION 1
#define BBID_STOPANIMATION 2
// undocumented flags for IShellMenu::SetShellFolder
#define SMSET_UNKNOWN08 0x08
#define SMSET_UNKNOWN10 0x10
void WINAPI ShellDDEInit(BOOL bInit);
DWORD WINAPI WinList_Init(void);
IStream* WINAPI SHGetViewStream(LPCITEMIDLIST, DWORD, LPCTSTR, LPCTSTR, LPCTSTR);
EXTERN_C HRESULT WINAPI SHCreateSessionKey(REGSAM samDesired, PHKEY phKey);
/*****************************************************************************
* Shell Link
*/
#include <pshpack1.h>
typedef struct tagSHELL_LINK_HEADER
{
/* The size of this structure (always 0x0000004C) */
DWORD dwSize;
/* CLSID = class identifier (always 00021401-0000-0000-C000-000000000046) */
CLSID clsid;
/* Flags (SHELL_LINK_DATA_FLAGS) */
DWORD dwFlags;
/* Informations about the link target: */
DWORD dwFileAttributes;
FILETIME ftCreationTime;
FILETIME ftLastAccessTime;
FILETIME ftLastWriteTime;
DWORD nFileSizeLow; /* only the least significant 32 bits */
/* The index of an icon (signed?) */
DWORD nIconIndex;
/* The expected window state of an application launched by the link */
DWORD nShowCommand;
/* The keystrokes used to launch the application */
WORD wHotKey;
/* Reserved (must be zero) */
WORD wReserved1;
DWORD dwReserved2;
DWORD dwReserved3;
} SHELL_LINK_HEADER, *LPSHELL_LINK_HEADER;
/*****************************************************************************
* SHELL_LINK_INFOA/W
* If cbHeaderSize == 0x0000001C then use SHELL_LINK_INFOA
* If cbHeaderSize >= 0x00000024 then use SHELL_LINK_INFOW
*/
typedef struct tagSHELL_LINK_INFOA
{
/* Size of the link info data */
DWORD cbSize;
/* Size of this structure (ANSI: = 0x0000001C) */
DWORD cbHeaderSize;
/* Specifies which fields are present/populated (SLI_*) */
DWORD dwFlags;
/* Offset of the VolumeID field (SHELL_LINK_INFO_VOLUME_ID) */
DWORD cbVolumeIDOffset;
/* Offset of the LocalBasePath field (ANSI, NULL-terminated string) */
DWORD cbLocalBasePathOffset;
/* Offset of the CommonNetworkRelativeLink field (SHELL_LINK_INFO_CNR_LINK) */
DWORD cbCommonNetworkRelativeLinkOffset;
/* Offset of the CommonPathSuffix field (ANSI, NULL-terminated string) */
DWORD cbCommonPathSuffixOffset;
} SHELL_LINK_INFOA, *LPSHELL_LINK_INFOA;
typedef struct tagSHELL_LINK_INFOW
{
/* Size of the link info data */
DWORD cbSize;
/* Size of this structure (Unicode: >= 0x00000024) */
DWORD cbHeaderSize;
/* Specifies which fields are present/populated (SLI_*) */
DWORD dwFlags;
/* Offset of the VolumeID field (SHELL_LINK_INFO_VOLUME_ID) */
DWORD cbVolumeIDOffset;
/* Offset of the LocalBasePath field (ANSI, NULL-terminated string) */
DWORD cbLocalBasePathOffset;
/* Offset of the CommonNetworkRelativeLink field (SHELL_LINK_INFO_CNR_LINK) */
DWORD cbCommonNetworkRelativeLinkOffset;
/* Offset of the CommonPathSuffix field (ANSI, NULL-terminated string) */
DWORD cbCommonPathSuffixOffset;
/* Offset of the LocalBasePathUnicode field (Unicode, NULL-terminated string) */
DWORD cbLocalBasePathUnicodeOffset;
/* Offset of the CommonPathSuffixUnicode field (Unicode, NULL-terminated string) */
DWORD cbCommonPathSuffixUnicodeOffset;
} SHELL_LINK_INFOW, *LPSHELL_LINK_INFOW;
/* VolumeID, LocalBasePath, LocalBasePathUnicode(cbHeaderSize >= 0x24) are present */
#define SLI_VALID_LOCAL 0x00000001
/* CommonNetworkRelativeLink is present */
#define SLI_VALID_NETWORK 0x00000002
/*****************************************************************************
* SHELL_LINK_INFO_VOLUME_IDA/W
* If cbVolumeLabelOffset != 0x00000014 (should be 0x00000010) then use
* SHELL_LINK_INFO_VOLUME_IDA
* If cbVolumeLabelOffset == 0x00000014 then use SHELL_LINK_INFO_VOLUME_IDW
*/
typedef struct tagSHELL_LINK_INFO_VOLUME_IDA
{
/* Size of the VolumeID field (> 0x00000010) */
DWORD cbSize;
/* Drive type of the drive the link target is stored on (DRIVE_*) */
DWORD dwDriveType;
/* Serial number of the volume the link target is stored on */
DWORD nDriveSerialNumber;
/* Offset of the volume label (ANSI, NULL-terminated string).
Must be != 0x00000014 (see tagSHELL_LINK_INFO_VOLUME_IDW) */
DWORD cbVolumeLabelOffset;
} SHELL_LINK_INFO_VOLUME_IDA, *LPSHELL_LINK_INFO_VOLUME_IDA;
typedef struct tagSHELL_LINK_INFO_VOLUME_IDW
{
/* Size of the VolumeID field (> 0x00000010) */
DWORD cbSize;
/* Drive type of the drive the link target is stored on (DRIVE_*) */
DWORD dwDriveType;
/* Serial number of the volume the link target is stored on */
DWORD nDriveSerialNumber;
/* Offset of the volume label (ANSI, NULL-terminated string).
If the value of this field is 0x00000014, ignore it and use
cbVolumeLabelUnicodeOffset! */
DWORD cbVolumeLabelOffset;
/* Offset of the volume label (Unicode, NULL-terminated string).
If the value of the VolumeLabelOffset field is not 0x00000014,
this field must be ignored (==> it doesn't exists ==> ANSI). */
DWORD cbVolumeLabelUnicodeOffset;
} SHELL_LINK_INFO_VOLUME_IDW, *LPSHELL_LINK_INFO_VOLUME_IDW;
/*****************************************************************************
* SHELL_LINK_INFO_CNR_LINKA/W (CNR = Common Network Relative)
* If cbNetNameOffset == 0x00000014 then use SHELL_LINK_INFO_CNR_LINKA
* If cbNetNameOffset > 0x00000014 then use SHELL_LINK_INFO_CNR_LINKW
*/
typedef struct tagSHELL_LINK_INFO_CNR_LINKA
{
/* Size of the CommonNetworkRelativeLink field (>= 0x00000014) */
DWORD cbSize;
/* Specifies which fields are present/populated (SLI_CNR_*) */
DWORD dwFlags;
/* Offset of the NetName field (ANSI, NULLterminated string) */
DWORD cbNetNameOffset;
/* Offset of the DeviceName field (ANSI, NULLterminated string) */
DWORD cbDeviceNameOffset;
/* Type of the network provider (WNNC_NET_* defined in winnetwk.h) */
DWORD dwNetworkProviderType;
} SHELL_LINK_INFO_CNR_LINKA, *LPSHELL_LINK_INFO_CNR_LINKA;
typedef struct tagSHELL_LINK_INFO_CNR_LINKW
{
/* Size of the CommonNetworkRelativeLink field (>= 0x00000014) */
DWORD cbSize;
/* Specifies which fields are present/populated (SLI_CNR_*) */
DWORD dwFlags;
/* Offset of the NetName field (ANSI, NULLterminated string) */
DWORD cbNetNameOffset;
/* Offset of the DeviceName field (ANSI, NULLterminated string) */
DWORD cbDeviceNameOffset;
/* Type of the network provider (WNNC_NET_* defined in winnetwk.h) */
DWORD dwNetworkProviderType;
/* Offset of the NetNameUnicode field (Unicode, NULLterminated string) */
DWORD cbNetNameUnicodeOffset;
/* Offset of the DeviceNameUnicode field (Unicode, NULLterminated string) */
DWORD cbDeviceNameUnicodeOffset;
} SHELL_LINK_INFO_CNR_LINKW, *LPSHELL_LINK_INFO_CNR_LINKW;
/* DeviceName is present */
#define SLI_CNR_VALID_DEVICE 0x00000001
/* NetworkProviderType is present */
#define SLI_CNR_VALID_NET_TYPE 0x00000002
/*****************************************************************************
* Shell Link Extra Data (IShellLinkDataList)
*/
typedef struct tagEXP_TRACKER
{
/* .cbSize = 0x00000060, .dwSignature = 0xa0000003 */
DATABLOCK_HEADER dbh;
/* Length >= 0x00000058 */
DWORD nLength;
/* Must be 0x00000000 */
DWORD nVersion;
/* NetBIOS name (ANSI, unused bytes are set to zero) */
CHAR szMachineID[16]; /* "variable" >= 16 (?) */
/* Some GUIDs for the Link Tracking service (from the FS?) */
GUID guidDroidVolume;
GUID guidDroidObject;
GUID guidDroidBirthVolume;
GUID guidDroidBirthObject;
} EXP_TRACKER, *LPEXP_TRACKER;
typedef struct tagEXP_SHIM
{
/* .cbSize >= 0x00000088, .dwSignature = 0xa0000008 */
DATABLOCK_HEADER dbh;
/* Name of a shim layer to apply (Unicode, unused bytes are set to zero) */
WCHAR szwLayerName[64]; /* "variable" >= 64 */
} EXP_SHIM, *LPEXP_SHIM;
typedef struct tagEXP_KNOWN_FOLDER
{
/* .cbSize = 0x0000001c, .dwSignature = 0xa000000b */
DATABLOCK_HEADER dbh;
/* A GUID value that identifies a known folder */
GUID guidKnownFolder;
/* Specifies the location of the ItemID of the first child
segment of the IDList specified by guidKnownFolder */
DWORD cbOffset;
} EXP_KNOWN_FOLDER, *LPEXP_KNOWN_FOLDER;
typedef struct tagEXP_VISTA_ID_LIST
{
/* .cbSize >= 0x0000000a, .dwSignature = 0xa000000c */
DATABLOCK_HEADER dbh;
/* Specifies an alternate IDList that can be used instead
of the "normal" IDList (SLDF_HAS_ID_LIST) */
/* LPITEMIDLIST pIDList; (variable) */
} EXP_VISTA_ID_LIST, *LPEXP_VISTA_ID_LIST;
#define EXP_TRACKER_SIG 0xa0000003
#define EXP_SHIM_SIG 0xa0000008
#define EXP_KNOWN_FOLDER_SIG 0xa000000b
#define EXP_VISTA_ID_LIST_SIG 0xa000000c
#include <poppack.h>
#ifdef __cplusplus
} /* extern "C" */
#endif /* defined(__cplusplus) */
#endif /* __WINE_UNDOCSHELL_H */
+26
View File
@@ -1,6 +1,10 @@
#ifndef _UNDOCUSER_H
#define _UNDOCUSER_H
#ifdef __cplusplus
extern "C" {
#endif /* defined(__cplusplus) */
/* Built in class atoms */
#define WC_MENU (MAKEINTATOM(0x8000))
#define WC_DESKTOP (MAKEINTATOM(0x8001))
@@ -32,6 +36,7 @@
#define WM_COPYGLOBALDATA 0x00000049
#define WM_LOGONNOTIFY 0x0000004C
#define WM_KEYF1 0x0000004D
#define WM_KLUDGEMINRECT 0x0000008B
#define WM_NCUAHDRAWCAPTION 0x000000AE
#define WM_NCUAHDRAWFRAME 0x000000AF
#define WM_SYSTIMER 0x00000118
@@ -102,6 +107,11 @@
#define LN_MESSAGE_BEEP 0x9
#define LN_START_SCREENSAVE 0xA
//
// Undocumented flags for DrawCaptionTemp
//
#define DC_NOSENDMSG 0x2000
#define STARTF_SCRNSAVER 0x80000000
#define CW_USEDEFAULT16 ((short)0x8000)
@@ -133,6 +143,18 @@ LONG WINAPI CsrBroadcastSystemMessageExW(DWORD dwflags,
BOOL WINAPI CliImmSetHotKey(DWORD dwID, UINT uModifiers, UINT uVirtualKey, HKL hKl);
HWND WINAPI GetTaskmanWindow(VOID);
HWND WINAPI GetProgmanWindow(VOID);
BOOL WINAPI SetShellWindow(HWND);
BOOL WINAPI SetShellWindowEx(HWND, HWND);
BOOL WINAPI DrawCaptionTempA(HWND,HDC,const RECT*,HFONT,HICON,LPCSTR,UINT);
BOOL WINAPI DrawCaptionTempW(HWND,HDC,const RECT*,HFONT,HICON,LPCWSTR,UINT);
#ifdef UNICODE
#define DrawCaptionTemp DrawCaptionTempW
#else
#define DrawCaptionTemp DrawCaptionTempA
#endif
//
// User api hook
@@ -204,4 +226,8 @@ BOOL WINAPI RegisterUserApiHook(PUSERAPIHOOKINFO puah);
BOOL WINAPI UnregisterUserApiHook(VOID);
#ifdef __cplusplus
} /* extern "C" */
#endif /* defined(__cplusplus) */
#endif
+50
View File
@@ -0,0 +1,50 @@
/*
* Copyright 2014 Qian Hong for CodeWeavers
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef __WINE_ATLCOM_H__
#define __WINE_ATLCOM_H__
#ifndef __WINE_ATLBASE_H__
# error You must include atlbase.h to use this header
#endif
typedef struct ATL_PROPMAP_ENTRY
{
LPCOLESTR szDesc;
#if _ATL_VER < _ATL_VER_100
DISPID dispid;
const CLSID *pclsidPropPage;
const IID *piidDispatch;
#else
const CLSID *pclsidPropPage;
const IID *piidDispatch;
void *rgclsidAllowed;
DWORD cclsidAllowed;
DISPID dispid;
#endif
DWORD dwOffsetData;
DWORD dwSizeData;
VARTYPE vt;
} ATL_PROPMAP_ENTRY;
HRESULT WINAPI AtlIPersistStreamInit_Load(IStream*, ATL_PROPMAP_ENTRY*, void*, IUnknown*);
HRESULT WINAPI AtlIPersistStreamInit_Save(IStream*, BOOL, ATL_PROPMAP_ENTRY*, void*, IUnknown*);
HRESULT WINAPI AtlIPersistPropertyBag_Load(IPropertyBag*, IErrorLog*, ATL_PROPMAP_ENTRY*, void*, IUnknown*);
HRESULT WINAPI AtlIPersistPropertyBag_Save(IPropertyBag*, BOOL, BOOL, ATL_PROPMAP_ENTRY*, void*, IUnknown*);
#endif /* __WINE_ATLCOM_H__ */
+2 -1
View File
@@ -2,7 +2,8 @@
/* Define to a function attribute for Microsoft hotpatch assembly prefix. */
#ifndef DECLSPEC_HOTPATCH
#ifdef _MSC_VER
#if defined(_MSC_VER) || defined(__clang__)
/* FIXME: http://llvm.org/bugs/show_bug.cgi?id=20888 */
#define DECLSPEC_HOTPATCH
#else
#define DECLSPEC_HOTPATCH __attribute__((__ms_hook_prologue__))
+123
View File
@@ -231,6 +231,124 @@ static __inline const char *wine_dbgstr_longlong( ULONGLONG ll )
else return wine_dbg_sprintf( "%lx", (unsigned long)ll );
}
#if defined(__oaidl_h__) && defined(V_VT)
static inline const char *wine_dbgstr_vt( VARTYPE vt )
{
static const char *const variant_types[] =
{
"VT_EMPTY","VT_NULL","VT_I2","VT_I4","VT_R4","VT_R8","VT_CY","VT_DATE",
"VT_BSTR","VT_DISPATCH","VT_ERROR","VT_BOOL","VT_VARIANT","VT_UNKNOWN",
"VT_DECIMAL","15","VT_I1","VT_UI1","VT_UI2","VT_UI4","VT_I8","VT_UI8",
"VT_INT","VT_UINT","VT_VOID","VT_HRESULT","VT_PTR","VT_SAFEARRAY",
"VT_CARRAY","VT_USERDEFINED","VT_LPSTR","VT_LPWSTR","32","33","34","35",
"VT_RECORD","VT_INT_PTR","VT_UINT_PTR","39","40","41","42","43","44","45",
"46","47","48","49","50","51","52","53","54","55","56","57","58","59","60",
"61","62","63","VT_FILETIME","VT_BLOB","VT_STREAM","VT_STORAGE",
"VT_STREAMED_OBJECT","VT_STORED_OBJECT","VT_BLOB_OBJECT","VT_CF","VT_CLSID",
"VT_VERSIONED_STREAM"
};
static const char *const variant_flags[16] =
{
"",
"|VT_VECTOR",
"|VT_ARRAY",
"|VT_VECTOR|VT_ARRAY",
"|VT_BYREF",
"|VT_VECTOR|VT_ARRAY",
"|VT_ARRAY|VT_BYREF",
"|VT_VECTOR|VT_ARRAY|VT_BYREF",
"|VT_RESERVED",
"|VT_VECTOR|VT_RESERVED",
"|VT_ARRAY|VT_RESERVED",
"|VT_VECTOR|VT_ARRAY|VT_RESERVED",
"|VT_BYREF|VT_RESERVED",
"|VT_VECTOR|VT_ARRAY|VT_RESERVED",
"|VT_ARRAY|VT_BYREF|VT_RESERVED",
"|VT_VECTOR|VT_ARRAY|VT_BYREF|VT_RESERVED",
};
if (vt & ~VT_TYPEMASK)
return wine_dbg_sprintf( "%s%s", wine_dbgstr_vt(vt&VT_TYPEMASK), variant_flags[vt>>12] );
if (vt < sizeof(variant_types)/sizeof(*variant_types))
return variant_types[vt];
if (vt == VT_BSTR_BLOB)
return "VT_BSTR_BLOB";
return wine_dbg_sprintf( "vt(invalid %x)", vt );
}
static inline const char *wine_dbgstr_variant( const VARIANT *v )
{
if (!v)
return "(null)";
if (V_VT(v) & VT_BYREF) {
if (V_VT(v) == (VT_VARIANT|VT_BYREF))
return wine_dbg_sprintf( "%p {VT_VARIANT|VT_BYREF: %s}", v, wine_dbgstr_variant(V_VARIANTREF(v)) );
return wine_dbg_sprintf( "%p {%s %p}", v, wine_dbgstr_vt(V_VT(v)), V_BYREF(v) );
}
if (V_ISARRAY(v) || V_ISVECTOR(v))
return wine_dbg_sprintf( "%p {%s %p}", v, wine_dbgstr_vt(V_VT(v)), V_ARRAY(v) );
switch(V_VT(v)) {
case VT_EMPTY:
return wine_dbg_sprintf( "%p {VT_EMPTY}", v );
case VT_NULL:
return wine_dbg_sprintf( "%p {VT_NULL}", v );
case VT_I2:
return wine_dbg_sprintf( "%p {VT_I2: %d}", v, V_I2(v) );
case VT_I4:
return wine_dbg_sprintf( "%p {VT_I4: %d}", v, V_I4(v) );
case VT_R4:
return wine_dbg_sprintf( "%p {VT_R4: %f}", v, V_R4(v) );
case VT_R8:
return wine_dbg_sprintf( "%p {VT_R8: %lf}", v, V_R8(v) );
case VT_CY:
return wine_dbg_sprintf( "%p {VT_CY: %s}", v, wine_dbgstr_longlong(V_CY(v).int64) );
case VT_DATE:
return wine_dbg_sprintf( "%p {VT_DATE: %lf}", v, V_DATE(v) );
case VT_BSTR:
return wine_dbg_sprintf( "%p {VT_BSTR: %s}", v, wine_dbgstr_w(V_BSTR(v)) );
case VT_DISPATCH:
return wine_dbg_sprintf( "%p {VT_DISPATCH: %p}", v, V_DISPATCH(v) );
case VT_ERROR:
return wine_dbg_sprintf( "%p {VT_ERROR: %08x}", v, V_ERROR(v) );
case VT_BOOL:
return wine_dbg_sprintf( "%p {VT_BOOL: %x}", v, V_BOOL(v) );
case VT_UNKNOWN:
return wine_dbg_sprintf( "%p {VT_UNKNOWN: %p}", v, V_UNKNOWN(v) );
case VT_I1:
return wine_dbg_sprintf( "%p {VT_I1: %d}", v, V_I1(v) );
case VT_UI1:
return wine_dbg_sprintf( "%p {VT_UI1: %u}", v, V_UI1(v) );
case VT_UI2:
return wine_dbg_sprintf( "%p {VT_UI2: %d}", v, V_UI2(v) );
case VT_UI4:
return wine_dbg_sprintf( "%p {VT_UI4: %d}", v, V_UI4(v) );
case VT_I8:
return wine_dbg_sprintf( "%p {VT_I8: %s}", v, wine_dbgstr_longlong(V_I8(v)) );
case VT_UI8:
return wine_dbg_sprintf( "%p {VT_UI8: %s}", v, wine_dbgstr_longlong(V_UI8(v)) );
case VT_INT:
return wine_dbg_sprintf( "%p {VT_INT: %d}", v, V_INT(v) );
case VT_UINT:
return wine_dbg_sprintf( "%p {VT_UINT: %u}", v, V_UINT(v) );
case VT_VOID:
return wine_dbg_sprintf( "%p {VT_VOID}", v );
case VT_RECORD:
return wine_dbg_sprintf( "%p {VT_RECORD: %p %p}", v, V_UNION(v,brecVal).pvRecord, V_UNION(v,brecVal).pRecInfo );
default:
return wine_dbg_sprintf( "%p {vt %s}", v, wine_dbgstr_vt(V_VT(v)) );
}
}
#endif /* defined(__oaidl_h__) && defined(V_VT) */
#ifndef WINE_TRACE
#define WINE_TRACE __WINE_DPRINTF(_TRACE,__wine_dbch___default)
#define WINE_TRACE_(ch) __WINE_DPRINTF(_TRACE,&__wine_dbch_##ch)
@@ -270,6 +388,11 @@ static __inline const char *debugstr_guid( const struct _GUID *id ) { return win
static __inline const char *debugstr_a( const char *s ) { return wine_dbgstr_an( s, -1 ); }
static __inline const char *debugstr_w( const WCHAR *s ) { return wine_dbgstr_wn( s, -1 ); }
#if defined(__oaidl_h__) && defined(V_VT)
static __inline const char *debugstr_vt( VARTYPE vt ) { return wine_dbgstr_vt( vt ); }
static __inline const char *debugstr_variant( const VARIANT *v ) { return wine_dbgstr_variant( v ); }
#endif
#define TRACE WINE_TRACE
#define TRACE_(ch) WINE_TRACE_(ch)
#define TRACE_ON(ch) WINE_TRACE_ON(ch)
+2
View File
@@ -136,6 +136,7 @@ HRESULT WINAPI BaseOutputPinImpl_DecideAllocator(BaseOutputPin *This, IMemInputP
HRESULT WINAPI BaseOutputPinImpl_AttemptConnection(BasePin *This, IPin * pReceivePin, const AM_MEDIA_TYPE * pmt);
HRESULT WINAPI BaseOutputPin_Construct(const IPinVtbl *OutputPin_Vtbl, LONG outputpin_size, const PIN_INFO * pPinInfo, const BaseOutputPinFuncTable* pBaseOutputFuncsTable, LPCRITICAL_SECTION pCritSec, IPin ** ppPin);
HRESULT WINAPI BaseOutputPin_Destroy(BaseOutputPin *This);
/* Base Input Pin */
HRESULT WINAPI BaseInputPinImpl_QueryInterface(IPin * iface, REFIID riid, LPVOID * ppv);
@@ -151,6 +152,7 @@ HRESULT WINAPI BaseInputPinImpl_NewSegment(IPin * iface, REFERENCE_TIME tStart,
HRESULT BaseInputPin_Construct(const IPinVtbl *InputPin_Vtbl, LONG inputpin_size, const PIN_INFO * pPinInfo,
const BaseInputPinFuncTable* pBaseInputFuncsTable,
LPCRITICAL_SECTION pCritSec, IMemAllocator *, IPin ** ppPin);
HRESULT WINAPI BaseInputPin_Destroy(BaseInputPin *This);
typedef struct BaseFilter
{
+10 -2
View File
@@ -306,7 +306,11 @@ void winetest_set_location( const char* file, int line )
int broken( int condition )
{
return (strcmp(winetest_platform, "windows") == 0) && condition;
return ((strcmp(winetest_platform, "windows") == 0)
#ifndef USE_WINE_TODOS
|| (strcmp(winetest_platform, "reactos") == 0)
#endif
) && condition;
}
/*
@@ -411,7 +415,11 @@ void __winetest_cdecl winetest_win_skip( const char *msg, ... )
{
__winetest_va_list valist;
__winetest_va_start(valist, msg);
if ((strcmp(winetest_platform, "windows") == 0) || (strcmp(winetest_platform, "reactos") == 0))
if ((strcmp(winetest_platform, "windows") == 0)
#ifndef USE_WINE_TODOS
|| (strcmp(winetest_platform, "reactos") == 0)
#endif
)
winetest_vskip(msg, valist);
else
winetest_vok(0, msg, valist);

Some files were not shown because too many files have changed in this diff Show More