mirror of
https://github.com/hakril/PythonForWindows
synced 2026-06-08 14:31:45 +00:00
Added some generated def
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
typedef struct ITypeCompVtbl
|
||||
{
|
||||
BEGIN_INTERFACE
|
||||
|
||||
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
|
||||
__RPC__in ITypeComp * This,
|
||||
/* [in] */ __RPC__in REFIID riid,
|
||||
/* [annotation][iid_is][out] */
|
||||
__RPC__deref_out PVOID *ppvObject);
|
||||
|
||||
ULONG ( STDMETHODCALLTYPE *AddRef )(
|
||||
__RPC__in ITypeComp * This);
|
||||
|
||||
ULONG ( STDMETHODCALLTYPE *Release )(
|
||||
__RPC__in ITypeComp * This);
|
||||
|
||||
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Bind )(
|
||||
ITypeComp * This,
|
||||
/* [annotation][in] */
|
||||
__RPC__in LPOLESTR szName,
|
||||
/* [in] */ ULONG lHashVal,
|
||||
/* [in] */ WORD wFlags,
|
||||
/* [out] */ ITypeInfo **ppTInfo,
|
||||
/* [out] */ DESCKIND *pDescKind,
|
||||
/* [out] */ BINDPTR *pBindPtr);
|
||||
|
||||
/* [local] */ HRESULT ( STDMETHODCALLTYPE *BindType )(
|
||||
ITypeComp * This,
|
||||
/* [annotation][in] */
|
||||
__RPC__in LPOLESTR szName,
|
||||
/* [in] */ ULONG lHashVal,
|
||||
/* [out] */ ITypeInfo **ppTInfo,
|
||||
/* [out] */ ITypeComp **ppTComp);
|
||||
|
||||
END_INTERFACE
|
||||
} ITypeCompVtbl;
|
||||
@@ -0,0 +1,125 @@
|
||||
typedef struct ITypeInfoVtbl
|
||||
{
|
||||
BEGIN_INTERFACE
|
||||
|
||||
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
|
||||
__RPC__in ITypeInfo * This,
|
||||
/* [in] */ __RPC__in REFIID riid,
|
||||
/* [annotation][iid_is][out] */
|
||||
__RPC__deref_out void **ppvObject);
|
||||
|
||||
ULONG ( STDMETHODCALLTYPE *AddRef )(
|
||||
__RPC__in ITypeInfo * This);
|
||||
|
||||
ULONG ( STDMETHODCALLTYPE *Release )(
|
||||
__RPC__in ITypeInfo * This);
|
||||
|
||||
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetTypeAttr )(
|
||||
ITypeInfo * This,
|
||||
/* [out] */ TYPEATTR **ppTypeAttr);
|
||||
|
||||
HRESULT ( STDMETHODCALLTYPE *GetTypeComp )(
|
||||
__RPC__in ITypeInfo * This,
|
||||
/* [out] */ __RPC__deref_out_opt ITypeComp **ppTComp);
|
||||
|
||||
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetFuncDesc )(
|
||||
ITypeInfo * This,
|
||||
/* [in] */ UINT index,
|
||||
/* [out] */ FUNCDESC **ppFuncDesc);
|
||||
|
||||
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetVarDesc )(
|
||||
ITypeInfo * This,
|
||||
/* [in] */ UINT index,
|
||||
/* [out] */ VARDESC **ppVarDesc);
|
||||
|
||||
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetNames )(
|
||||
ITypeInfo * This,
|
||||
/* [in] */ MEMBERID memid,
|
||||
/* [length_is][size_is][out] */ BSTR *rgBstrNames,
|
||||
/* [in] */ UINT cMaxNames,
|
||||
/* [out] */ UINT *pcNames);
|
||||
|
||||
HRESULT ( STDMETHODCALLTYPE *GetRefTypeOfImplType )(
|
||||
__RPC__in ITypeInfo * This,
|
||||
/* [in] */ UINT index,
|
||||
/* [out] */ __RPC__out HREFTYPE *pRefType);
|
||||
|
||||
HRESULT ( STDMETHODCALLTYPE *GetImplTypeFlags )(
|
||||
__RPC__in ITypeInfo * This,
|
||||
/* [in] */ UINT index,
|
||||
/* [out] */ __RPC__out INT *pImplTypeFlags);
|
||||
|
||||
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
|
||||
ITypeInfo * This,
|
||||
/* [annotation][size_is][in] */
|
||||
__RPC__in_ecount(cNames) LPOLESTR *rgszNames,
|
||||
/* [in] */ UINT cNames,
|
||||
/* [size_is][out] */ MEMBERID *pMemId);
|
||||
|
||||
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
|
||||
ITypeInfo * This,
|
||||
/* [in] */ PVOID pvInstance,
|
||||
/* [in] */ MEMBERID memid,
|
||||
/* [in] */ WORD wFlags,
|
||||
/* [out][in] */ DISPPARAMS *pDispParams,
|
||||
/* [out] */ VARIANT *pVarResult,
|
||||
/* [out] */ EXCEPINFO *pExcepInfo,
|
||||
/* [out] */ UINT *puArgErr);
|
||||
|
||||
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetDocumentation )(
|
||||
ITypeInfo * This,
|
||||
/* [in] */ MEMBERID memid,
|
||||
/* [out] */ BSTR *pBstrName,
|
||||
/* [out] */ BSTR *pBstrDocString,
|
||||
/* [out] */ DWORD *pdwHelpContext,
|
||||
/* [out] */ BSTR *pBstrHelpFile);
|
||||
|
||||
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetDllEntry )(
|
||||
ITypeInfo * This,
|
||||
/* [in] */ MEMBERID memid,
|
||||
/* [in] */ INVOKEKIND invKind,
|
||||
/* [out] */ BSTR *pBstrDllName,
|
||||
/* [out] */ BSTR *pBstrName,
|
||||
/* [out] */ WORD *pwOrdinal);
|
||||
|
||||
HRESULT ( STDMETHODCALLTYPE *GetRefTypeInfo )(
|
||||
__RPC__in ITypeInfo * This,
|
||||
/* [in] */ HREFTYPE hRefType,
|
||||
/* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
|
||||
|
||||
/* [local] */ HRESULT ( STDMETHODCALLTYPE *AddressOfMember )(
|
||||
ITypeInfo * This,
|
||||
/* [in] */ MEMBERID memid,
|
||||
/* [in] */ INVOKEKIND invKind,
|
||||
/* [out] */ PVOID *ppv);
|
||||
|
||||
/* [local] */ HRESULT ( STDMETHODCALLTYPE *CreateInstance )(
|
||||
ITypeInfo * This,
|
||||
/* [in] */ IUnknown *pUnkOuter,
|
||||
/* [in] */ REFIID riid,
|
||||
/* [iid_is][out] */ PVOID *ppvObj);
|
||||
|
||||
HRESULT ( STDMETHODCALLTYPE *GetMops )(
|
||||
__RPC__in ITypeInfo * This,
|
||||
/* [in] */ MEMBERID memid,
|
||||
/* [out] */ __RPC__deref_out_opt BSTR *pBstrMops);
|
||||
|
||||
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetContainingTypeLib )(
|
||||
ITypeInfo * This,
|
||||
/* [out] */ ITypeLib **ppTLib,
|
||||
/* [out] */ UINT *pIndex);
|
||||
|
||||
/* [local] */ DWORD /*void*/ ( STDMETHODCALLTYPE *ReleaseTypeAttr )(
|
||||
ITypeInfo * This,
|
||||
/* [in] */ TYPEATTR *pTypeAttr);
|
||||
|
||||
/* [local] */ DWORD ( STDMETHODCALLTYPE *ReleaseFuncDesc )(
|
||||
ITypeInfo * This,
|
||||
/* [in] */ FUNCDESC *pFuncDesc);
|
||||
|
||||
/* [local] */ DWORD ( STDMETHODCALLTYPE *ReleaseVarDesc )(
|
||||
ITypeInfo * This,
|
||||
/* [in] */ VARDESC *pVarDesc);
|
||||
|
||||
END_INTERFACE
|
||||
} ITypeInfoVtbl;
|
||||
@@ -0,0 +1,72 @@
|
||||
typedef struct ITypeLibVtbl
|
||||
{
|
||||
BEGIN_INTERFACE
|
||||
|
||||
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
|
||||
__RPC__in ITypeLib * This,
|
||||
/* [in] */ __RPC__in REFIID riid,
|
||||
/* [annotation][iid_is][out] */
|
||||
__RPC__deref_out void **ppvObject);
|
||||
|
||||
ULONG ( STDMETHODCALLTYPE *AddRef )(
|
||||
__RPC__in ITypeLib * This);
|
||||
|
||||
ULONG ( STDMETHODCALLTYPE *Release )(
|
||||
__RPC__in ITypeLib * This);
|
||||
|
||||
/* [local] */ UINT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
|
||||
ITypeLib * This);
|
||||
|
||||
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
|
||||
__RPC__in ITypeLib * This,
|
||||
/* [in] */ UINT index,
|
||||
/* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
|
||||
|
||||
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoType )(
|
||||
__RPC__in ITypeLib * This,
|
||||
/* [in] */ UINT index,
|
||||
/* [out] */ __RPC__out TYPEKIND *pTKind);
|
||||
|
||||
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoOfGuid )(
|
||||
__RPC__in ITypeLib * This,
|
||||
/* [in] */ __RPC__in REFGUID guid,
|
||||
/* [out] */ __RPC__deref_out_opt ITypeInfo **ppTinfo);
|
||||
|
||||
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetLibAttr )(
|
||||
ITypeLib * This,
|
||||
/* [out] */ TLIBATTR **ppTLibAttr);
|
||||
|
||||
HRESULT ( STDMETHODCALLTYPE *GetTypeComp )(
|
||||
__RPC__in ITypeLib * This,
|
||||
/* [out] */ __RPC__deref_out_opt ITypeComp **ppTComp);
|
||||
|
||||
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetDocumentation )(
|
||||
ITypeLib * This,
|
||||
/* [in] */ INT index,
|
||||
/* [out] */ BSTR *pBstrName,
|
||||
/* [out] */ BSTR *pBstrDocString,
|
||||
/* [out] */ DWORD *pdwHelpContext,
|
||||
/* [out] */ BSTR *pBstrHelpFile);
|
||||
|
||||
/* [local] */ HRESULT ( STDMETHODCALLTYPE *IsName )(
|
||||
ITypeLib * This,
|
||||
/* [annotation][out][in] */
|
||||
__RPC__inout LPOLESTR szNameBuf,
|
||||
/* [in] */ ULONG lHashVal,
|
||||
/* [out] */ BOOL *pfName);
|
||||
|
||||
/* [local] */ HRESULT ( STDMETHODCALLTYPE *FindName )(
|
||||
ITypeLib * This,
|
||||
/* [annotation][out][in] */
|
||||
__RPC__inout LPOLESTR szNameBuf,
|
||||
/* [in] */ ULONG lHashVal,
|
||||
/* [length_is][size_is][out] */ ITypeInfo **ppTInfo,
|
||||
/* [length_is][size_is][out] */ MEMBERID *rgMemId,
|
||||
/* [out][in] */ USHORT *pcFound);
|
||||
|
||||
/* [local] */ DWORD /* void */ ( STDMETHODCALLTYPE *ReleaseTLibAttr )(
|
||||
ITypeLib * This,
|
||||
/* [in] */ TLIBATTR *pTLibAttr);
|
||||
|
||||
END_INTERFACE
|
||||
} ITypeLibVtbl;
|
||||
@@ -0,0 +1,5 @@
|
||||
#define FC_ALLOCATE_ALL_NODES 0x01
|
||||
#define FC_DONT_FREE 0x02
|
||||
#define FC_ALLOCED_ON_STACK 0x04
|
||||
#define FC_SIMPLE_POINTER 0x08
|
||||
#define FC_POINTER_DEREF 0x10
|
||||
@@ -257,3 +257,16 @@
|
||||
#define FAX_PORT_QUERY (0x0010)
|
||||
#define FAX_PORT_SET (0x0020)
|
||||
#define FAX_JOB_MANAGE (0x0040)
|
||||
|
||||
|
||||
// COM Specific Access Rights (Custom NAME)
|
||||
// Based on internet search for "COM Access Mask"
|
||||
|
||||
|
||||
#define COM_EXECUTE (0x0001)
|
||||
#define COM_EXECUTE_LOCAL (0x0002)
|
||||
#define COM_EXECUTE_REMOTE (0x0004)
|
||||
#define COM_ACTIVATE_LOCAL (0x0008)
|
||||
#define COM_ACTIVATE_REMOTE (0x0010)
|
||||
|
||||
|
||||
|
||||
+18
@@ -22,6 +22,17 @@ NTSTATUS WINAPI NtAlpcQueryInformationMessage(
|
||||
_Out_opt_ PULONG ReturnLength
|
||||
);
|
||||
|
||||
NTSTATUS WINAPI NtConnectPort(
|
||||
_Out_ PHANDLE PortHandle,
|
||||
_In_ PUNICODE_STRING PortName,
|
||||
_In_ PSECURITY_QUALITY_OF_SERVICE SecurityQos,
|
||||
_Inout_opt_ PPORT_VIEW ClientView,
|
||||
_Inout_opt_ PREMOTE_PORT_VIEW ServerView,
|
||||
_Out_opt_ PULONG MaxMessageLength,
|
||||
_Inout_opt_ PVOID ConnectionInformation,
|
||||
_Inout_opt_ PULONG ConnectionInformationLength
|
||||
);
|
||||
|
||||
NTSTATUS WINAPI NtAlpcConnectPort(
|
||||
_Out_ PHANDLE PortHandle,
|
||||
_In_ PUNICODE_STRING PortName,
|
||||
@@ -156,3 +167,10 @@ NTSTATUS WINAPI NtAlpcRevokeSecurityContext(
|
||||
_Reserved_ ULONG Flags,
|
||||
_In_ ALPC_HANDLE ContextHandle
|
||||
);
|
||||
|
||||
|
||||
NTSTATUS WINAPI NtAlpcImpersonateClientOfPort(
|
||||
_In_ HANDLE PortHandle,
|
||||
_In_ PPORT_MESSAGE Message,
|
||||
_In_ PVOID Flags
|
||||
);
|
||||
@@ -6312,4 +6312,5 @@ IXpsOMCoreProperties|3340FE8F-4027-4AA1-8F5F-D35AE45FE597
|
||||
IXpsOMObjectFactory|F9B2A685-A50D-4FC2-B764-B56E093EA0CA
|
||||
IXpsOMThumbnailGenerator|15B873D5-1971-41E8-83A3-6578403064C7
|
||||
IXpsPrintJobStream|7A77DC5F-45D6-4DFF-9307-D8CB846347CA
|
||||
IXpsPrintJob|5AB89B06-8194-425F-AB3B-D7A96E350161
|
||||
IXpsPrintJob|5AB89B06-8194-425F-AB3B-D7A96E350161
|
||||
MyCls|11223344-5555-6666-7777-889900000002
|
||||
@@ -127,6 +127,7 @@ PSID = PVOID
|
||||
/* COM STUFF */
|
||||
|
||||
RPCOLEDATAREP = ULONG
|
||||
HREFTYPE = DWORD
|
||||
|
||||
/* Function PTR */
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
typedef enum {
|
||||
FC_ZERO,FC_BYTE,FC_CHAR,FC_SMALL,FC_USMALL,FC_WCHAR,FC_SHORT,FC_USHORT,FC_LONG,FC_ULONG,FC_FLOAT,FC_HYPER,FC_DOUBLE,FC_ENUM16,FC_ENUM32,
|
||||
FC_IGNORE,FC_ERROR_STATUS_T,FC_RP,FC_UP,FC_OP,FC_FP,FC_STRUCT,FC_PSTRUCT,FC_CSTRUCT,FC_CPSTRUCT,FC_CVSTRUCT,FC_BOGUS_STRUCT,FC_CARRAY,
|
||||
FC_CVARRAY,FC_SMFARRAY,FC_LGFARRAY,FC_SMVARRAY,FC_LGVARRAY,FC_BOGUS_ARRAY,FC_C_CSTRING,FC_C_BSTRING,FC_C_SSTRING,FC_C_WSTRING,FC_CSTRING,
|
||||
FC_BSTRING,FC_SSTRING,FC_WSTRING,FC_ENCAPSULATED_UNION,FC_NON_ENCAPSULATED_UNION,FC_BYTE_COUNT_POINTER,FC_TRANSMIT_AS,FC_REPRESENT_AS,FC_IP,
|
||||
FC_BIND_CONTEXT,FC_BIND_GENERIC,FC_BIND_PRIMITIVE,FC_AUTO_HANDLE,FC_CALLBACK_HANDLE,FC_UNUSED1,FC_POINTER,FC_ALIGNM2,FC_ALIGNM4,FC_ALIGNM8,
|
||||
FC_UNUSED2,FC_UNUSED3,FC_UNUSED4,FC_STRUCTPAD1,FC_STRUCTPAD2,FC_STRUCTPAD3,FC_STRUCTPAD4,FC_STRUCTPAD5,FC_STRUCTPAD6,FC_STRUCTPAD7,
|
||||
FC_STRING_SIZED,FC_UNUSED5,FC_NO_REPEAT,FC_FIXED_REPEAT,FC_VARIABLE_REPEAT,FC_FIXED_OFFSET,FC_VARIABLE_OFFSET,FC_PP,FC_EMBEDDED_COMPLEX,
|
||||
FC_IN_PARAM,FC_IN_PARAM_BASETYPE,FC_IN_PARAM_NO_FREE_INST,FC_IN_OUT_PARAM,FC_OUT_PARAM,FC_RETURN_PARAM,FC_RETURN_PARAM_BASETYPE,FC_DEREFERENCE,
|
||||
FC_DIV_2,FC_MULT_2,FC_ADD_1,FC_SUB_1,FC_CALLBACK,FC_CONSTANT_IID,FC_END,FC_PAD,FC_SPLIT_DEREFERENCE = 0x74,FC_SPLIT_DIV_2,FC_SPLIT_MULT_2,
|
||||
FC_SPLIT_ADD_1,FC_SPLIT_SUB_1,FC_SPLIT_CALLBACK,FC_HARD_STRUCT = 0xb1,FC_TRANSMIT_AS_PTR,FC_REPRESENT_AS_PTR,FC_USER_MARSHAL,FC_PIPE,
|
||||
FC_BLKHOLE,FC_RANGE,FC_INT3264,FC_UINT3264,FC_END_OF_UNIVERSE
|
||||
} NDR_FORMAT_CHARACTER;
|
||||
|
||||
@@ -274,3 +274,55 @@ typedef struct _RPC_IF_ID {
|
||||
USHORT VersMajor;
|
||||
USHORT VersMinor;
|
||||
} RPC_IF_ID;
|
||||
|
||||
|
||||
typedef struct _PORT_VIEW {
|
||||
ULONG Length;
|
||||
HANDLE SectionHandle;
|
||||
ULONG SectionOffset;
|
||||
ULONG ViewSize;
|
||||
PVOID ViewBase;
|
||||
PVOID TargetViewBase;
|
||||
} PORT_VIEW, *PPORT_VIEW;
|
||||
|
||||
typedef struct _REMOTE_PORT_VIEW {
|
||||
ULONG Length;
|
||||
ULONG ViewSize;
|
||||
PVOID ViewBase;
|
||||
} REMOTE_PORT_VIEW, *PREMOTE_PORT_VIEW;
|
||||
|
||||
typedef struct tagCOMVERSION
|
||||
{
|
||||
USHORT MajorVersion;
|
||||
USHORT MinorVersion;
|
||||
} COMVERSION;
|
||||
|
||||
typedef struct tagORPCTHIS {
|
||||
COMVERSION version;
|
||||
ULONG flags;
|
||||
ULONG reserved1;
|
||||
GUID cid;
|
||||
PVOID extensions; // [unique] ORPC_EXTENT_ARRAY *extensions;
|
||||
} ORPCTHIS;
|
||||
|
||||
|
||||
typedef struct __MIDL_XmitDefs_0001 {
|
||||
GUID asyncOperationId;
|
||||
ULONG64 oxidClientProcessNA;
|
||||
GUID originalClientLogicalThreadId;
|
||||
ULONG64 uClientCausalityTraceId;
|
||||
} MIDL_XmitDefs_0001;
|
||||
|
||||
typedef struct _LOCALTHIS {
|
||||
DWORD dwFlags;
|
||||
DWORD dwClientThread;
|
||||
GUID passthroughTraceActivity;
|
||||
GUID callTraceActivity;
|
||||
MIDL_XmitDefs_0001 asyncRequestBlock;
|
||||
DWORD reserved;
|
||||
PVOID pTouchedAstaArray; // Ptr32 __MIDL_XmitDefs_0002
|
||||
} LOCALTHIS;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -151,4 +151,12 @@ typedef struct __tagVARIANT {
|
||||
WORD wReserved2;
|
||||
WORD wReserved3;
|
||||
_ANON_TMP_variant_sub_union _VARIANT_NAME_3;
|
||||
} _tagVARIANT, VARIANT, VARIANTARG, *LPVARIANT, *LPVARIANTARG;
|
||||
} _tagVARIANT, VARIANT, VARIANTARG, *LPVARIANT, *LPVARIANTARG;
|
||||
|
||||
|
||||
typedef enum tagCOMSD {
|
||||
SD_LAUNCHPERMISSIONS = 0,
|
||||
SD_ACCESSPERMISSIONS = 1,
|
||||
SD_LAUNCHRESTRICTIONS = 2,
|
||||
SD_ACCESSRESTRICTIONS = 3
|
||||
} COMSD;
|
||||
@@ -0,0 +1,161 @@
|
||||
typedef enum tagVARKIND {
|
||||
VAR_PERINSTANCE,
|
||||
VAR_STATIC,
|
||||
VAR_CONST,
|
||||
VAR_DISPATCH
|
||||
} VARKIND;
|
||||
|
||||
typedef enum tagINVOKEKIND {
|
||||
INVOKE_FUNC,
|
||||
INVOKE_PROPERTYGET,
|
||||
INVOKE_PROPERTYPUT,
|
||||
INVOKE_PROPERTYPUTREF
|
||||
} INVOKEKIND;
|
||||
|
||||
typedef enum tagFUNCKIND {
|
||||
FUNC_VIRTUAL,
|
||||
FUNC_PUREVIRTUAL,
|
||||
FUNC_NONVIRTUAL,
|
||||
FUNC_STATIC,
|
||||
FUNC_DISPATCH
|
||||
} FUNCKIND;
|
||||
|
||||
typedef enum tagSYSKIND {
|
||||
SYS_WIN16,
|
||||
SYS_WIN32,
|
||||
SYS_MAC,
|
||||
SYS_WIN64
|
||||
} SYSKIND;
|
||||
|
||||
typedef enum tagCALLCONV {
|
||||
CC_FASTCALL,
|
||||
CC_CDECL,
|
||||
CC_MSCPASCAL,
|
||||
CC_PASCAL,
|
||||
CC_MACPASCAL,
|
||||
CC_STDCALL,
|
||||
CC_FPFASTCALL,
|
||||
CC_SYSCALL,
|
||||
CC_MPWCDECL,
|
||||
CC_MPWPASCAL,
|
||||
CC_MAX
|
||||
} CALLCONV;
|
||||
|
||||
typedef enum tagDESCKIND {
|
||||
DESCKIND_NONE,
|
||||
DESCKIND_FUNCDESC,
|
||||
DESCKIND_VARDESC,
|
||||
DESCKIND_TYPECOMP,
|
||||
DESCKIND_IMPLICITAPPOBJ,
|
||||
DESCKIND_MAX
|
||||
} DESCKIND;
|
||||
|
||||
typedef struct tagPARAMDESCEX {
|
||||
ULONG cBytes;
|
||||
VARIANTARG varDefaultValue;
|
||||
} PARAMDESCEX, *LPPARAMDESCEX;
|
||||
|
||||
typedef struct tagPARAMDESC {
|
||||
LPPARAMDESCEX pparamdescex;
|
||||
USHORT wParamFlags;
|
||||
} PARAMDESC, *LPPARAMDESC;
|
||||
|
||||
|
||||
|
||||
typedef union _TMP_TYPEDESC_UNION {
|
||||
PVOID lptdesc; // struct tagTYPEDESC *lptdesc; // Temporrary fix..
|
||||
PVOID lpadesc; // struct tagARRAYDESC *lpadesc;
|
||||
HREFTYPE hreftype;
|
||||
}TMP_TYPEDESC_UNION;
|
||||
|
||||
|
||||
typedef struct tagTYPEDESC {
|
||||
TMP_TYPEDESC_UNION DUMMYUNIONNAME;
|
||||
VARTYPE vt;
|
||||
} TYPEDESC;
|
||||
|
||||
typedef struct tagARRAYDESC {
|
||||
TYPEDESC tdescElem;
|
||||
USHORT cDims;
|
||||
SAFEARRAYBOUND rgbounds[1];
|
||||
} ARRAYDESC;
|
||||
|
||||
typedef struct tagELEMDESC {
|
||||
TYPEDESC tdesc;
|
||||
PARAMDESC paramdesc;
|
||||
} ELEMDESC, *LPELEMDESC;
|
||||
|
||||
|
||||
typedef struct tagFUNCDESC {
|
||||
MEMBERID memid;
|
||||
SCODE *lprgscode;
|
||||
ELEMDESC *lprgelemdescParam;
|
||||
FUNCKIND funckind;
|
||||
INVOKEKIND invkind;
|
||||
CALLCONV callconv;
|
||||
SHORT cParams;
|
||||
SHORT cParamsOpt;
|
||||
SHORT oVft;
|
||||
SHORT cScodes;
|
||||
ELEMDESC elemdescFunc;
|
||||
WORD wFuncFlags;
|
||||
} FUNCDESC, *LPFUNCDESC;
|
||||
|
||||
|
||||
typedef union _TMP_VARDESC_UNION {
|
||||
ULONG oInst;
|
||||
VARIANT *lpvarValue;
|
||||
}TMP_VARDESC_UNION;
|
||||
|
||||
typedef struct tagVARDESC {
|
||||
MEMBERID memid;
|
||||
LPOLESTR lpstrSchema;
|
||||
TMP_VARDESC_UNION DUMMYUNIONNAME;
|
||||
ELEMDESC elemdescVar;
|
||||
WORD wVarFlags;
|
||||
VARKIND varkind;
|
||||
} VARDESC, *LPVARDESC;
|
||||
|
||||
|
||||
typedef union tagBINDPTR {
|
||||
FUNCDESC *lpfuncdesc;
|
||||
VARDESC *lpvardesc;
|
||||
PVOID lptcomp; // ITypeComp*
|
||||
} BINDPTR, *LPBINDPTR;
|
||||
|
||||
|
||||
typedef struct tagIDLDESC {
|
||||
ULONG_PTR dwReserved;
|
||||
USHORT wIDLFlags;
|
||||
} IDLDESC, *LPIDLDESC;
|
||||
|
||||
|
||||
typedef struct tagTLIBATTR {
|
||||
GUID guid;
|
||||
LCID lcid;
|
||||
SYSKIND syskind;
|
||||
WORD wMajorVerNum;
|
||||
WORD wMinorVerNum;
|
||||
WORD wLibFlags;
|
||||
} TLIBATTR, *LPTLIBATTR;
|
||||
|
||||
typedef struct tagTYPEATTR {
|
||||
GUID guid;
|
||||
LCID lcid;
|
||||
DWORD dwReserved;
|
||||
MEMBERID memidConstructor;
|
||||
MEMBERID memidDestructor;
|
||||
LPOLESTR lpstrSchema;
|
||||
ULONG cbSizeInstance;
|
||||
TYPEKIND typekind;
|
||||
WORD cFuncs;
|
||||
WORD cVars;
|
||||
WORD cImplTypes;
|
||||
WORD cbSizeVft;
|
||||
WORD cbAlignment;
|
||||
WORD wTypeFlags;
|
||||
WORD wMajorVerNum;
|
||||
WORD wMinorVerNum;
|
||||
TYPEDESC tdescAlias;
|
||||
IDLDESC idldescType;
|
||||
} TYPEATTR, *LPTYPEATTR;
|
||||
@@ -134,7 +134,8 @@ class FunctionParsedFile(ParsedFile):
|
||||
|
||||
class COMParsedFile(ParsedFile):
|
||||
PARSER = com_parser.WinComParser
|
||||
IGNORED_INTERFACE = set(["ITypeInfo"])
|
||||
# IGNORED_INTERFACE = set(["ITypeInfo"])
|
||||
IGNORED_INTERFACE = set()
|
||||
|
||||
def compute_imports_exports(self, cominterface):
|
||||
self.add_exports(cominterface.name)
|
||||
|
||||
@@ -70,24 +70,22 @@ class WinStructParser(Parser):
|
||||
else:
|
||||
if not is_typedef:
|
||||
raise ValueError("Anonymous union not in a typedef")
|
||||
enum_name = "<anonymous>"
|
||||
res_enum = WinEnum(None)
|
||||
|
||||
self.assert_token_type(OpenBracketToken)
|
||||
count = itertools.count()
|
||||
assigned_value = False
|
||||
while type(self.peek()) != CloseBracketToken:
|
||||
i = next(count)
|
||||
name = self.assert_token_type(NameToken)
|
||||
if type(self.peek()) == EqualToken:
|
||||
if i != 0 and not assigned_value:
|
||||
raise ParsingError("Enum {0} mix def with and without equal".format(enum_name))
|
||||
assigned_value = True
|
||||
# Equal sign (hard define of enum value)
|
||||
self.assert_token_type(EqualToken)
|
||||
i = self.promote_to_int(self.next_token())
|
||||
else:
|
||||
if assigned_value:
|
||||
raise ParsingError("Enum {0} mix def with and without equal".format(enum_name))
|
||||
|
||||
# print(i, new_i)
|
||||
# assert new_i >= i, "Cannot define eum value with inferior current value ({0})".format(enum_name)
|
||||
# Setup new counter from here
|
||||
count = itertools.count(i + 1)
|
||||
res_enum.add_enum_entry(i, name.value)
|
||||
if not type(self.peek()) == CloseBracketToken:
|
||||
self.assert_token_type(CommaToken)
|
||||
|
||||
Reference in New Issue
Block a user