mirror of
https://github.com/hakril/PythonForWindows
synced 2026-06-08 14:31:45 +00:00
Beginning to generate ctypes for COM interfaces
This commit is contained in:
@@ -56,8 +56,8 @@ def initial_processing( data):
|
||||
return outs.read()
|
||||
|
||||
class WinComParser(Parser):
|
||||
PARAM_INFO = ["__RPC__deref_out", "__RPC__in", "__RPC__deref_out_opt", "__RPC__out"]
|
||||
PARAM_INFO_WITH_VALUE = ["__RPC__in_ecount"]
|
||||
PARAM_INFO = ["__RPC__deref_out", "__RPC__in", "__RPC__deref_out_opt", "__RPC__out", "__RPC__in_opt", "__RPC__deref_opt_inout_opt"]
|
||||
PARAM_INFO_WITH_VALUE = ["__RPC__in_ecount", "__RPC__out_ecount_part", "__RPC__in_ecount_full"]
|
||||
|
||||
def __init__(self, data):
|
||||
data = initial_processing(data)
|
||||
@@ -82,6 +82,8 @@ class WinComParser(Parser):
|
||||
while type(self.peek()) != CloseParenthesisToken:
|
||||
self.next_token()
|
||||
self.next_token()
|
||||
if self.peek() == KeywordToken("const"):
|
||||
self.next_token()
|
||||
type_name = self.assert_token_type(NameToken)
|
||||
|
||||
while type(self.peek()) == StarToken:
|
||||
|
||||
@@ -47,6 +47,7 @@ TYPE_EQUIVALENCE = [
|
||||
('PLARGE_INTEGER', 'POINTER(LARGE_INTEGER)'),
|
||||
('DWORD64', 'ULONG64'),
|
||||
('SCODE', 'LONG'),
|
||||
('CIMTYPE', 'LONG'),
|
||||
('PULONG64', 'POINTER(ULONG64)'),
|
||||
('PUINT', 'POINTER(UINT)'),
|
||||
('PHANDLE', 'POINTER(HANDLE)'),
|
||||
@@ -122,6 +123,8 @@ def verif_funcs_type(funcs, structs, enums):
|
||||
raise ValueError("UNKNOW PARAM TYPE {0}".format(param_type))
|
||||
|
||||
|
||||
yolo_struct = [x[:-4] for x in os.listdir(r"C:\Users\hakril\Documents\Work\COM\dump")]
|
||||
|
||||
def verif_com_interface_type(vtbls, struc, enum):
|
||||
all_struct_name = get_all_struct_name(structs, enums)
|
||||
all_interface_name = []
|
||||
@@ -130,7 +133,7 @@ def verif_com_interface_type(vtbls, struc, enum):
|
||||
for vtbl in vtbls:
|
||||
if not vtbl.name.endswith("Vtbl"):
|
||||
raise ValueError("Com interface are expected to finish by <Vtbl> got <{0}".format(vtbl.name))
|
||||
all_interface_name.append(vtbl.name.rstrip("Vtbl"))
|
||||
all_interface_name.append(vtbl.name[:-len("Vtbl")])
|
||||
|
||||
for vtbl in vtbls:
|
||||
#print(vtbl)
|
||||
@@ -144,6 +147,11 @@ def verif_com_interface_type(vtbls, struc, enum):
|
||||
param_type = arg.type
|
||||
if param_type not in known_type and param_type not in all_struct_name + all_interface_name:
|
||||
#if param_type != "ITypeInfo":
|
||||
if param_type in yolo_struct:
|
||||
print("Ned to extract <{0}> from dump".format(param_type))
|
||||
import shutil
|
||||
#shutil.copy(r"C:\Users\hakril\Documents\Work\COM\dump\{0}.txt".format(param_type), "com")
|
||||
continue
|
||||
raise ValueError("UNKNOW PARAM TYPE {0}".format(param_type))
|
||||
|
||||
|
||||
@@ -252,20 +260,38 @@ class {0}(COMInterface):
|
||||
}}
|
||||
"""
|
||||
|
||||
com_interface_comment_template = """ #{0} -> {1}"""
|
||||
com_interface_method_template = """ "{0}": ctypes.WINFUNCTYPE({1}),"""
|
||||
|
||||
def generate_com_interface_ctype(vtbls):
|
||||
print(vtbls)
|
||||
define = []
|
||||
all_name = [vtbl.name.strip("Vtbl") for vtbl in vtbls]
|
||||
for vtbl in vtbls:
|
||||
methods_string = []
|
||||
for method in vtbl.methods:
|
||||
args_to_define = method.args[1:] #ctypes doesnt not need the This
|
||||
#import pdb;pdb.set_trace()
|
||||
methods_string.append(com_interface_method_template.format(method.name, ", ".join([method.ret_type] + [arg.type for arg in args_to_define])))
|
||||
str_args = []
|
||||
methods_string.append(com_interface_comment_template.format(method.name, ", ".join([("*"* arg.byreflevel) + arg.name +":"+arg.type for arg in args_to_define])))
|
||||
for arg in args_to_define:
|
||||
type = arg.type
|
||||
byreflevel = arg.byreflevel
|
||||
if type in all_name:
|
||||
type = "PVOID"
|
||||
byreflevel -= 1
|
||||
if type == "void":
|
||||
type = "PVOID"
|
||||
if byreflevel == 0:
|
||||
raise ValueError("{0}.{1} take a parameter <void>".format(vtbl.name, method.name))
|
||||
byreflevel -= 1
|
||||
for i in range(byreflevel):
|
||||
type = "POINTER({0})".format(type)
|
||||
str_args.append(type)
|
||||
methods_string.append(com_interface_method_template.format(method.name, ", ".join([method.ret_type] + str_args)))
|
||||
#import pdb;pdb.set_trace()
|
||||
define.append((com_interface_template.format(vtbl.name, "\n".join(methods_string))))
|
||||
return "\n".join(define)
|
||||
return com_interface_header + "\n".join(define)
|
||||
|
||||
def write_to_out_file(name, data):
|
||||
for out_dir in OUT_DIRS:
|
||||
|
||||
@@ -67,7 +67,7 @@ class EqualToken(NoValueToken):
|
||||
pass
|
||||
|
||||
class Lexer(object):
|
||||
keywords = ["typedef", "struct", "enum", "union"]
|
||||
keywords = ["typedef", "struct", "enum", "union", "const"]
|
||||
|
||||
token_chr = {"*" : StarToken, "[" : OpenSquareBracketToken, "]" : CloseSquareBracketToken,
|
||||
"{" : OpenBracketToken, "}" : CloseBracketToken, ";" : ColonToken,
|
||||
|
||||
@@ -21,6 +21,8 @@ CHAR = c_char
|
||||
INT = c_int
|
||||
UCHAR = c_char
|
||||
CSHORT = c_short
|
||||
VARTYPE = c_ushort
|
||||
BSTR = c_wchar_p
|
||||
PUCHAR = POINTER(UCHAR)
|
||||
double = c_double
|
||||
FARPROC = PVOID
|
||||
@@ -33,6 +35,8 @@ ULONG64 = c_ulonglong
|
||||
LARGE_INTEGER = LONGLONG
|
||||
PLARGE_INTEGER = POINTER(LARGE_INTEGER)
|
||||
DWORD64 = ULONG64
|
||||
SCODE = LONG
|
||||
CIMTYPE = LONG
|
||||
PULONG64 = POINTER(ULONG64)
|
||||
PUINT = POINTER(UINT)
|
||||
PHANDLE = POINTER(HANDLE)
|
||||
@@ -45,15 +49,18 @@ PHKEY = POINTER(HKEY)
|
||||
ACCESS_MASK = DWORD
|
||||
REGSAM = ACCESS_MASK
|
||||
SECURITY_CONTEXT_TRACKING_MODE = BOOLEAN
|
||||
DISPID = LONG
|
||||
MEMBERID = DISPID
|
||||
LPCONTEXT = PVOID
|
||||
HCERTSTORE = PVOID
|
||||
HCRYPTMSG = PVOID
|
||||
PALPC_PORT_ATTRIBUTES = PVOID
|
||||
VOID = DWORD
|
||||
ITypeInfo = PVOID
|
||||
|
||||
structs = ['_LIST_ENTRY', '_PEB_LDR_DATA', '_LSA_UNICODE_STRING', '_RTL_USER_PROCESS_PARAMETERS', '_PEB', '_SECURITY_ATTRIBUTES', '_SYSTEM_VERIFIER_INFORMATION', '_LDR_DATA_TABLE_ENTRY', '_IMAGE_FILE_HEADER', '_IMAGE_DATA_DIRECTORY', '_IMAGE_SECTION_HEADER', '_IMAGE_OPTIONAL_HEADER64', '_IMAGE_OPTIONAL_HEADER', '_IMAGE_NT_HEADERS64', '_IMAGE_NT_HEADERS', '_IMAGE_IMPORT_DESCRIPTOR', '_IMAGE_IMPORT_BY_NAME', '_IMAGE_EXPORT_DIRECTORY', '_MEMORY_BASIC_INFORMATION', '_MEMORY_BASIC_INFORMATION32', '_MEMORY_BASIC_INFORMATION64', '_STARTUPINFOA', '_STARTUPINFOW', '_PROCESS_INFORMATION', '_FLOATING_SAVE_AREA', '_CONTEXT32', '_WOW64_FLOATING_SAVE_AREA', '_WOW64_CONTEXT', '_M128A', '_CONTEXT64', 'tagPROCESSENTRY32W', 'tagPROCESSENTRY32', 'tagTHREADENTRY32', '_LUID', '_LUID_AND_ATTRIBUTES', '_TOKEN_PRIVILEGES', '_TOKEN_ELEVATION', '_SID_AND_ATTRIBUTES', '_TOKEN_MANDATORY_LABEL', '_TOKEN_USER', '_OSVERSIONINFOA', '_OSVERSIONINFOW', '_OSVERSIONINFOEXA', '_OSVERSIONINFOEXW', '_OVERLAPPED', '_MIB_TCPROW_OWNER_PID', '_MIB_TCPTABLE_OWNER_PID', '_MIB_UDPROW_OWNER_PID', '_MIB_UDPTABLE_OWNER_PID', '_MIB_UDP6ROW_OWNER_PID', '_MIB_UDP6TABLE_OWNER_PID', '_MIB_TCP6ROW_OWNER_PID', '_MIB_TCP6TABLE_OWNER_PID', '_MIB_TCPROW', '_EXCEPTION_RECORD', '_EXCEPTION_RECORD32', '_EXCEPTION_RECORD64', '_EXCEPTION_POINTERS64', '_EXCEPTION_POINTERS32', '_DEBUG_PROCESSOR_IDENTIFICATION_ALPHA', '_DEBUG_PROCESSOR_IDENTIFICATION_AMD64', '_DEBUG_PROCESSOR_IDENTIFICATION_IA64', '_DEBUG_PROCESSOR_IDENTIFICATION_X86', '_DEBUG_PROCESSOR_IDENTIFICATION_ARM', '_DEBUG_PROCESSOR_IDENTIFICATION_ALL', '_SYMBOL_INFO', '_MODLOAD_DATA', '_SYSTEM_MODULE32', '_SYSTEM_MODULE64', '_SYSTEM_MODULE_INFORMATION32', '_SYSTEM_MODULE_INFORMATION64', 'tagSAFEARRAYBOUND', 'tagSAFEARRAY', '_DEBUG_BREAKPOINT_PARAMETERS', '_DEBUG_REGISTER_DESCRIPTION', '_DEBUG_STACK_FRAME', '_DEBUG_LAST_EVENT_INFO_BREAKPOINT', '_DEBUG_LAST_EVENT_INFO_EXCEPTION', '_DEBUG_LAST_EVENT_INFO_EXIT_THREAD', '_DEBUG_LAST_EVENT_INFO_EXIT_PROCESS', '_DEBUG_LAST_EVENT_INFO_LOAD_MODULE', '_DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE', '_DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR', '_DEBUG_SPECIFIC_FILTER_PARAMETERS', '_DEBUG_EXCEPTION_FILTER_PARAMETERS', '_GUID', '_CRYPTOAPI_BLOB', 'WINTRUST_FILE_INFO_', '_CRYPT_ATTRIBUTE', '_CTL_ENTRY', '_CRYPT_ATTRIBUTE', '_CRYPT_ATTRIBUTES', '_CRYPT_ALGORITHM_IDENTIFIER', '_CMSG_SIGNER_INFO', '_CERT_EXTENSION', '_CTL_USAGE', '_CTL_INFO', '_CTL_CONTEXT', 'WINTRUST_CATALOG_INFO_', 'WINTRUST_BLOB_INFO_', '_CRYPT_BIT_BLOB', '_CERT_PUBLIC_KEY_INFO', '_CERT_INFO', '_CERT_CONTEXT', 'WINTRUST_SGNR_INFO_', '_FILETIME', 'WINTRUST_CERT_INFO_', '_TMP_WINTRUST_UNION_TYPE', '_WINTRUST_DATA', '_PROCESS_BASIC_INFORMATION', '_JIT_DEBUG_INFO', '_SID_IDENTIFIER_AUTHORITY', '_EXCEPTION_DEBUG_INFO', '_CREATE_THREAD_DEBUG_INFO', '_CREATE_PROCESS_DEBUG_INFO', '_EXIT_THREAD_DEBUG_INFO', '_EXIT_PROCESS_DEBUG_INFO', '_LOAD_DLL_DEBUG_INFO', '_UNLOAD_DLL_DEBUG_INFO', '_OUTPUT_DEBUG_STRING_INFO', '_RIP_INFO', '_TMP_UNION_DEBUG_INFO', '_DEBUG_EVENT', '_STRING', '_OBJECT_ATTRIBUTES', '_SECURITY_QUALITY_OF_SERVICE', '_ALPC_PORT_ATTRIBUTES32', '_ALPC_PORT_ATTRIBUTES64', '_ALPC_MESSAGE_ATTRIBUTES', '_PORT_MESSAGE_TMP_UNION', '_PORT_MESSAGE_TMP_SUBSTRUCT_S1', '_PORT_MESSAGE_TMP_UNION_U1', '_PORT_MESSAGE_TMP_SUBSTRUCT_S2', '_PORT_MESSAGE_TMP_UNION_U2', '_PORT_MESSAGE', '_SERVICE_STATUS', '_SERVICE_STATUS_PROCESS', '_ENUM_SERVICE_STATUS_PROCESSA', '_ENUM_SERVICE_STATUS_PROCESSW', 'CATALOG_INFO_', '_SYSTEM_HANDLE', '_SYSTEM_HANDLE_INFORMATION', '__PUBLIC_OBJECT_TYPE_INFORMATION', '_PUBLIC_OBJECT_BASIC_INFORMATION', '_EVENTLOGRECORD']
|
||||
structs = ['_LIST_ENTRY', '_PEB_LDR_DATA', '_LSA_UNICODE_STRING', '_RTL_USER_PROCESS_PARAMETERS', '_PEB', '_SECURITY_ATTRIBUTES', '_SYSTEM_VERIFIER_INFORMATION', '_LDR_DATA_TABLE_ENTRY', '_IMAGE_FILE_HEADER', '_IMAGE_DATA_DIRECTORY', '_IMAGE_SECTION_HEADER', '_IMAGE_OPTIONAL_HEADER64', '_IMAGE_OPTIONAL_HEADER', '_IMAGE_NT_HEADERS64', '_IMAGE_NT_HEADERS', '_IMAGE_IMPORT_DESCRIPTOR', '_IMAGE_IMPORT_BY_NAME', '_IMAGE_EXPORT_DIRECTORY', '_MEMORY_BASIC_INFORMATION', '_MEMORY_BASIC_INFORMATION32', '_MEMORY_BASIC_INFORMATION64', '_STARTUPINFOA', '_STARTUPINFOW', '_PROCESS_INFORMATION', '_FLOATING_SAVE_AREA', '_CONTEXT32', '_WOW64_FLOATING_SAVE_AREA', '_WOW64_CONTEXT', '_M128A', '_CONTEXT64', 'tagPROCESSENTRY32W', 'tagPROCESSENTRY32', 'tagTHREADENTRY32', '_LUID', '_LUID_AND_ATTRIBUTES', '_TOKEN_PRIVILEGES', '_TOKEN_ELEVATION', '_SID_AND_ATTRIBUTES', '_TOKEN_MANDATORY_LABEL', '_TOKEN_USER', '_OSVERSIONINFOA', '_OSVERSIONINFOW', '_OSVERSIONINFOEXA', '_OSVERSIONINFOEXW', '_OVERLAPPED', '_MIB_TCPROW_OWNER_PID', '_MIB_TCPTABLE_OWNER_PID', '_MIB_UDPROW_OWNER_PID', '_MIB_UDPTABLE_OWNER_PID', '_MIB_UDP6ROW_OWNER_PID', '_MIB_UDP6TABLE_OWNER_PID', '_MIB_TCP6ROW_OWNER_PID', '_MIB_TCP6TABLE_OWNER_PID', '_MIB_TCPROW', '_EXCEPTION_RECORD', '_EXCEPTION_RECORD32', '_EXCEPTION_RECORD64', '_EXCEPTION_POINTERS64', '_EXCEPTION_POINTERS32', '_DEBUG_PROCESSOR_IDENTIFICATION_ALPHA', '_DEBUG_PROCESSOR_IDENTIFICATION_AMD64', '_DEBUG_PROCESSOR_IDENTIFICATION_IA64', '_DEBUG_PROCESSOR_IDENTIFICATION_X86', '_DEBUG_PROCESSOR_IDENTIFICATION_ARM', '_DEBUG_PROCESSOR_IDENTIFICATION_ALL', '_SYMBOL_INFO', '_MODLOAD_DATA', '_SYSTEM_MODULE32', '_SYSTEM_MODULE64', '_SYSTEM_MODULE_INFORMATION32', '_SYSTEM_MODULE_INFORMATION64', 'tagSAFEARRAYBOUND', 'tagSAFEARRAY', '_DEBUG_BREAKPOINT_PARAMETERS', '_DEBUG_REGISTER_DESCRIPTION', '_DEBUG_STACK_FRAME', '_DEBUG_LAST_EVENT_INFO_BREAKPOINT', '_DEBUG_LAST_EVENT_INFO_EXCEPTION', '_DEBUG_LAST_EVENT_INFO_EXIT_THREAD', '_DEBUG_LAST_EVENT_INFO_EXIT_PROCESS', '_DEBUG_LAST_EVENT_INFO_LOAD_MODULE', '_DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE', '_DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR', '_DEBUG_SPECIFIC_FILTER_PARAMETERS', '_DEBUG_EXCEPTION_FILTER_PARAMETERS', '_GUID', '_TMP_signscale', '_TMP_lowmid', 'TMP_signscale_union', 'TMP_lowmid_union', 'tagDEC', '__tagBRECORD', 'TMP_variant_sub_union', '__tagVARIANT', 'tagDISPPARAMS', 'tagEXCEPINFO', '_CRYPTOAPI_BLOB', 'WINTRUST_FILE_INFO_', '_CRYPT_ATTRIBUTE', '_CTL_ENTRY', '_CRYPT_ATTRIBUTE', '_CRYPT_ATTRIBUTES', '_CRYPT_ALGORITHM_IDENTIFIER', '_CMSG_SIGNER_INFO', '_CERT_EXTENSION', '_CTL_USAGE', '_CTL_INFO', '_CTL_CONTEXT', 'WINTRUST_CATALOG_INFO_', 'WINTRUST_BLOB_INFO_', '_CRYPT_BIT_BLOB', '_CERT_PUBLIC_KEY_INFO', '_CERT_INFO', '_CERT_CONTEXT', 'WINTRUST_SGNR_INFO_', '_FILETIME', 'WINTRUST_CERT_INFO_', '_TMP_WINTRUST_UNION_TYPE', '_WINTRUST_DATA', '_PROCESS_BASIC_INFORMATION', '_JIT_DEBUG_INFO', '_SID_IDENTIFIER_AUTHORITY', '_EXCEPTION_DEBUG_INFO', '_CREATE_THREAD_DEBUG_INFO', '_CREATE_PROCESS_DEBUG_INFO', '_EXIT_THREAD_DEBUG_INFO', '_EXIT_PROCESS_DEBUG_INFO', '_LOAD_DLL_DEBUG_INFO', '_UNLOAD_DLL_DEBUG_INFO', '_OUTPUT_DEBUG_STRING_INFO', '_RIP_INFO', '_TMP_UNION_DEBUG_INFO', '_DEBUG_EVENT', '_STRING', '_OBJECT_ATTRIBUTES', '_SECURITY_QUALITY_OF_SERVICE', '_ALPC_PORT_ATTRIBUTES32', '_ALPC_PORT_ATTRIBUTES64', '_ALPC_MESSAGE_ATTRIBUTES', '_PORT_MESSAGE_TMP_UNION', '_PORT_MESSAGE_TMP_SUBSTRUCT_S1', '_PORT_MESSAGE_TMP_UNION_U1', '_PORT_MESSAGE_TMP_SUBSTRUCT_S2', '_PORT_MESSAGE_TMP_UNION_U2', '_PORT_MESSAGE', '_SERVICE_STATUS', '_SERVICE_STATUS_PROCESS', '_ENUM_SERVICE_STATUS_PROCESSA', '_ENUM_SERVICE_STATUS_PROCESSW', 'CATALOG_INFO_', '_SYSTEM_HANDLE', '_SYSTEM_HANDLE_INFORMATION', '__PUBLIC_OBJECT_TYPE_INFORMATION', '_PUBLIC_OBJECT_BASIC_INFORMATION', '_EVENTLOGRECORD']
|
||||
|
||||
enums = ['_SYSTEM_INFORMATION_CLASS', '_MEMORY_INFORMATION_CLASS', '_THREAD_INFORMATION_CLASS', '_TCP_TABLE_CLASS', '_VARENUM', '_UDP_TABLE_CLASS', '_MIB_TCP_STATE', '_TOKEN_INFORMATION_CLASS', '_SECURITY_IMPERSONATION_LEVEL', '_SC_ENUM_TYPE', '_SC_STATUS_TYPE', '_OBJECT_INFORMATION_CLASS', '_SID_NAME_USE', '_IMAGEHLP_SYMBOL_TYPE_INFO', '_PROCESSINFOCLASS']
|
||||
enums = ['_SYSTEM_INFORMATION_CLASS', '_MEMORY_INFORMATION_CLASS', '_THREAD_INFORMATION_CLASS', '_TCP_TABLE_CLASS', '_VARENUM', '_UDP_TABLE_CLASS', '_MIB_TCP_STATE', '_TOKEN_INFORMATION_CLASS', '_SECURITY_IMPERSONATION_LEVEL', '_SC_ENUM_TYPE', '_SC_STATUS_TYPE', '_OBJECT_INFORMATION_CLASS', '_SID_NAME_USE', 'NET_FW_PROFILE_TYPE2_', 'NET_FW_ACTION_', 'NET_FW_MODIFY_STATE_', 'NET_FW_RULE_DIRECTION_', '_IMAGEHLP_SYMBOL_TYPE_INFO', '_PROCESSINFOCLASS', 'tagTYPEKIND']
|
||||
|
||||
# Enum _SYSTEM_INFORMATION_CLASS definitions
|
||||
_SYSTEM_INFORMATION_CLASS = DWORD
|
||||
@@ -363,6 +370,39 @@ SidTypeUnknown = 0x8
|
||||
SidTypeComputer = 0x9
|
||||
SidTypeLabel = 0xa
|
||||
|
||||
# Enum NET_FW_PROFILE_TYPE2_ definitions
|
||||
NET_FW_PROFILE_TYPE2_ = DWORD
|
||||
NET_FW_PROFILE_TYPE2 = NET_FW_PROFILE_TYPE2_
|
||||
|
||||
NET_FW_PROFILE2_DOMAIN = 0x1
|
||||
NET_FW_PROFILE2_PRIVATE = 0x2
|
||||
NET_FW_PROFILE2_PUBLIC = 0x4
|
||||
NET_FW_PROFILE2_ALL = 0x7fffffff
|
||||
|
||||
# Enum NET_FW_ACTION_ definitions
|
||||
NET_FW_ACTION_ = DWORD
|
||||
NET_FW_ACTION = NET_FW_ACTION_
|
||||
|
||||
NET_FW_ACTION_BLOCK = 0x0
|
||||
NET_FW_ACTION_ALLOW = 0x1
|
||||
NET_FW_ACTION_MAX = 0x2
|
||||
|
||||
# Enum NET_FW_MODIFY_STATE_ definitions
|
||||
NET_FW_MODIFY_STATE_ = DWORD
|
||||
NET_FW_MODIFY_STATE = NET_FW_MODIFY_STATE_
|
||||
|
||||
NET_FW_MODIFY_STATE_OK = 0x0
|
||||
NET_FW_MODIFY_STATE_GP_OVERRIDE = 0x1
|
||||
NET_FW_MODIFY_STATE_INBOUND_BLOCKED = 0x2
|
||||
|
||||
# Enum NET_FW_RULE_DIRECTION_ definitions
|
||||
NET_FW_RULE_DIRECTION_ = DWORD
|
||||
NET_FW_RULE_DIRECTION = NET_FW_RULE_DIRECTION_
|
||||
|
||||
NET_FW_RULE_DIR_IN = 0x1
|
||||
NET_FW_RULE_DIR_OUT = 0x2
|
||||
NET_FW_RULE_DIR_MAX = 0x3
|
||||
|
||||
# Enum _IMAGEHLP_SYMBOL_TYPE_INFO definitions
|
||||
_IMAGEHLP_SYMBOL_TYPE_INFO = DWORD
|
||||
IMAGEHLP_SYMBOL_TYPE_INFO = _IMAGEHLP_SYMBOL_TYPE_INFO
|
||||
@@ -409,6 +449,20 @@ PROCESSINFOCLASS = _PROCESSINFOCLASS
|
||||
ProcessBasicInformation = 0x0
|
||||
ProcessWow64Information = 0x1a
|
||||
|
||||
# Enum tagTYPEKIND definitions
|
||||
tagTYPEKIND = DWORD
|
||||
TYPEKIND = tagTYPEKIND
|
||||
|
||||
TKIND_ENUM = 0x0
|
||||
TKIND_RECORD = 0x1
|
||||
TKIND_MODULE = 0x2
|
||||
TKIND_INTERFACE = 0x3
|
||||
TKIND_DISPATCH = 0x4
|
||||
TKIND_COCLASS = 0x5
|
||||
TKIND_ALIAS = 0x6
|
||||
TKIND_UNION = 0x7
|
||||
TKIND_MAX = 0x8
|
||||
|
||||
# Struct _LIST_ENTRY definitions
|
||||
# Self referencing struct tricks
|
||||
class _LIST_ENTRY(Structure): pass
|
||||
@@ -1645,7 +1699,135 @@ class _GUID(Structure):
|
||||
("Data3", USHORT),
|
||||
("Data4", UCHAR * 8),
|
||||
]
|
||||
IID = _GUID
|
||||
GUID = _GUID
|
||||
REFIID = POINTER(_GUID)
|
||||
|
||||
# Struct _TMP_signscale definitions
|
||||
class _TMP_signscale(Structure):
|
||||
_fields_ = [
|
||||
("scale", BYTE),
|
||||
("sign", BYTE),
|
||||
]
|
||||
|
||||
# Struct _TMP_lowmid definitions
|
||||
class _TMP_lowmid(Structure):
|
||||
_fields_ = [
|
||||
("Lo32", ULONG),
|
||||
("Mid32", ULONG),
|
||||
]
|
||||
|
||||
# Struct TMP_signscale_union definitions
|
||||
class TMP_signscale_union(Union):
|
||||
_fields_ = [
|
||||
("s", _TMP_signscale),
|
||||
("signscale", USHORT),
|
||||
]
|
||||
|
||||
# Struct TMP_lowmid_union definitions
|
||||
class TMP_lowmid_union(Union):
|
||||
_fields_ = [
|
||||
("s", _TMP_lowmid),
|
||||
("Lo64", ULONGLONG),
|
||||
]
|
||||
|
||||
# Struct tagDEC definitions
|
||||
class tagDEC(Structure):
|
||||
_fields_ = [
|
||||
("wReserved", USHORT),
|
||||
("u1", TMP_signscale_union),
|
||||
("Hi32", ULONG),
|
||||
("u2", TMP_signscale_union),
|
||||
]
|
||||
DECIMAL = tagDEC
|
||||
|
||||
# Struct __tagBRECORD definitions
|
||||
class __tagBRECORD(Structure):
|
||||
_fields_ = [
|
||||
("pvRecord", PVOID),
|
||||
("pRecInfo", PVOID),
|
||||
]
|
||||
_tagBRECORD = __tagBRECORD
|
||||
|
||||
# Struct TMP_variant_sub_union definitions
|
||||
class TMP_variant_sub_union(Union):
|
||||
_fields_ = [
|
||||
("llVal", LONGLONG),
|
||||
("lVal", LONG),
|
||||
("bVal", BYTE),
|
||||
("iVal", SHORT),
|
||||
("fltVal", FLOAT),
|
||||
("dblVal", DOUBLE),
|
||||
("boolVal", VARIANT_BOOL),
|
||||
("scode", SCODE),
|
||||
("bstrVal", BSTR),
|
||||
("punkVal", PVOID),
|
||||
("pdispVal", PVOID),
|
||||
("parray", POINTER(SAFEARRAY)),
|
||||
("pbVal", POINTER(BYTE)),
|
||||
("piVal", POINTER(SHORT)),
|
||||
("plVal", POINTER(LONG)),
|
||||
("pllVal", POINTER(LONGLONG)),
|
||||
("pfltVal", POINTER(FLOAT)),
|
||||
("pdblVal", POINTER(DOUBLE)),
|
||||
("pboolVal", POINTER(VARIANT_BOOL)),
|
||||
("pscode", POINTER(SCODE)),
|
||||
("pbstrVal", POINTER(BSTR)),
|
||||
("byref", PVOID),
|
||||
("cVal", CHAR),
|
||||
("uiVal", USHORT),
|
||||
("ulVal", ULONG),
|
||||
("ullVal", ULONGLONG),
|
||||
("intVal", INT),
|
||||
("uintVal", UINT),
|
||||
("pcVal", POINTER(CHAR)),
|
||||
("puiVal", POINTER(USHORT)),
|
||||
("pulVal", POINTER(ULONG)),
|
||||
("pullVal", POINTER(ULONGLONG)),
|
||||
("pintVal", POINTER(INT)),
|
||||
("puintVal", POINTER(UINT)),
|
||||
("__VARIANT_NAME_4", _tagBRECORD),
|
||||
]
|
||||
|
||||
# Struct __tagVARIANT definitions
|
||||
class __tagVARIANT(Structure):
|
||||
_fields_ = [
|
||||
("vt", VARTYPE),
|
||||
("wReserved1", WORD),
|
||||
("wReserved2", WORD),
|
||||
("wReserved3", WORD),
|
||||
("__VARIANT_NAME_3", TMP_variant_sub_union),
|
||||
]
|
||||
LPVARIANTARG = POINTER(__tagVARIANT)
|
||||
VARIANTARG = __tagVARIANT
|
||||
VARIANT = __tagVARIANT
|
||||
LPVARIANT = POINTER(__tagVARIANT)
|
||||
_tagVARIANT = __tagVARIANT
|
||||
|
||||
# Struct tagDISPPARAMS definitions
|
||||
class tagDISPPARAMS(Structure):
|
||||
_fields_ = [
|
||||
("rgvarg", POINTER(VARIANTARG)),
|
||||
("rgdispidNamedArgs", POINTER(DISPID)),
|
||||
("cArgs", UINT),
|
||||
("cNamedArgs", UINT),
|
||||
]
|
||||
DISPPARAMS = tagDISPPARAMS
|
||||
|
||||
# Struct tagEXCEPINFO definitions
|
||||
class tagEXCEPINFO(Structure):
|
||||
_fields_ = [
|
||||
("wCode", WORD),
|
||||
("wReserved", WORD),
|
||||
("bstrSource", BSTR),
|
||||
("bstrDescription", BSTR),
|
||||
("bstrHelpFile", BSTR),
|
||||
("dwHelpContext", DWORD),
|
||||
("pvReserved", ULONG_PTR),
|
||||
("pfnDeferredFillIn", ULONG_PTR),
|
||||
("scode", SCODE),
|
||||
]
|
||||
EXCEPINFO = tagEXCEPINFO
|
||||
|
||||
# Struct _CRYPTOAPI_BLOB definitions
|
||||
class _CRYPTOAPI_BLOB(Structure):
|
||||
|
||||
Reference in New Issue
Block a user