我们从Python开源项目中,提取了以下28个代码示例,用于说明如何使用ctypes.wintypes.UINT。
def _set_argtypes(self): ''' Functions arguments. ''' self.MONITORENUMPROC = WINFUNCTYPE(INT, DWORD, DWORD, POINTER(RECT), DOUBLE) windll.user32.GetSystemMetrics.argtypes = [INT] windll.user32.EnumDisplayMonitors.argtypes = [HDC, c_void_p, self.MONITORENUMPROC, LPARAM] windll.user32.GetWindowDC.argtypes = [HWND] windll.gdi32.CreateCompatibleDC.argtypes = [HDC] windll.gdi32.CreateCompatibleBitmap.argtypes = [HDC, INT, INT] windll.gdi32.SelectObject.argtypes = [HDC, HGDIOBJ] windll.gdi32.BitBlt.argtypes = [HDC, INT, INT, INT, INT, HDC, INT, INT, DWORD] windll.gdi32.DeleteObject.argtypes = [HGDIOBJ] windll.gdi32.GetDIBits.argtypes = [HDC, HBITMAP, UINT, UINT, c_void_p, POINTER(BITMAPINFO), UINT]
def __init__ (self): import ctypes.wintypes if sys.platform[:3] != 'win': raise SystemError('Windows is required') self.__winmm = ctypes.windll.LoadLibrary('winmm.dll') self.__mciSendStringW = self.__winmm.mciSendStringW self.__mciGetErrorStringW = self.__winmm.mciGetErrorStringW wintypes = ctypes.wintypes LPCWSTR, HANDLE = wintypes.LPCWSTR, wintypes.HANDLE args = [LPCWSTR, ctypes.c_char_p, wintypes.UINT, HANDLE] self.__mciSendStringW.argtypes = args self.__mciSendStringW.restype = wintypes.DWORD args = [wintypes.DWORD, ctypes.c_void_p, wintypes.UINT] self.__mciGetErrorStringW.argtypes = args self.__mciGetErrorStringW.restype = wintypes.BOOL self.__buffer = ctypes.create_string_buffer('?' * 4098) self.__alias_index = 0
def create_image_format_list(nNumListElements): """Returns an instance of the IMAGE_FORMAT_LIST structure having the properly scaled *FormatInfo* array. :param ULONG nNumListElements: Number of format info structures requested. :returns: IMAGE_FORMAT_LIST :var UINT nSizeOfListEntry: :var UINT nNumListElements: :var UINT[4] nReserved: :var IMAGE_FORMAT_INFO[nNumListElements] FormatInfo: """ class IMAGE_FORMAT_LIST(ctypes.Structure): _fields_ = [("nSizeOfListEntry", wt.UINT), ("nNumListElements", wt.UINT), ("nReserved", wt.UINT * 4), ("FormatInfo", IMAGE_FORMAT_INFO * nNumListElements)] a_list = IMAGE_FORMAT_LIST() a_list.nNumListElements = nNumListElements return a_list
def create_fdt_info_list(nNumListElements): """Returns an instance of the FDT_INFO_LIST structure having the properly scaled *FaceEntry* array. :param ULONG nNumListElements: Number of face entry structures requested. :returns: FDT_INFO_LIST :var UINT nSizeOfListEntry: :var UINT nNumDetectedFaces: :var UINT nNumListElements: :var UINT[4] nReserved: :var FDT_INFO_EL[nNumListElements] FaceEntry: """ class FDT_INFO_LIST(ctypes.Structure): _fields_ = [("nSizeOfListEntry", wt.UINT), ("nNumDetectedFaces", wt.UINT), ("nNumListElements", wt.UINT), ("nReserved", wt.UINT * 4), ("FaceEntry", FDT_INFO_EL * nNumListElements)] a_list = FDT_INFO_LIST() a_list.nNumListElements = nNumListElements return a_list
def __init__(self, tzres_loc='tzres.dll'): # Load the user32 DLL so we can load strings from tzres user32 = ctypes.WinDLL('user32') # Specify the LoadStringW function user32.LoadStringW.argtypes = (wintypes.HINSTANCE, wintypes.UINT, wintypes.LPWSTR, ctypes.c_int) self.LoadStringW = user32.LoadStringW self._tzres = ctypes.WinDLL(tzres_loc) self.tzres_loc = tzres_loc
def genwinmap(codepage): MultiByteToWideChar = ctypes.windll.kernel32.MultiByteToWideChar MultiByteToWideChar.argtypes = [wintypes.UINT, wintypes.DWORD, wintypes.LPCSTR, ctypes.c_int, wintypes.LPWSTR, ctypes.c_int] MultiByteToWideChar.restype = ctypes.c_int enc2uni = {} for i in range(32) + [127]: enc2uni[i] = (i, 'CONTROL CHARACTER') for i in range(256): buf = ctypes.create_unicode_buffer(2) ret = MultiByteToWideChar( codepage, 0, chr(i), 1, buf, 2) assert ret == 1, "invalid code page" assert buf[1] == '\x00' try: name = unicodedata.name(buf[0]) except ValueError: try: name = enc2uni[i][1] except KeyError: name = '' enc2uni[i] = (ord(buf[0]), name) return enc2uni
def notify_win(title, text): try: from servo.win32_toast import WindowsToast w = WindowsToast() w.balloon_tip(title, text) except: from ctypes import Structure, windll, POINTER, sizeof from ctypes.wintypes import DWORD, HANDLE, WINFUNCTYPE, BOOL, UINT class FLASHWINDOW(Structure): _fields_ = [("cbSize", UINT), ("hwnd", HANDLE), ("dwFlags", DWORD), ("uCount", UINT), ("dwTimeout", DWORD)] FlashWindowExProto = WINFUNCTYPE(BOOL, POINTER(FLASHWINDOW)) FlashWindowEx = FlashWindowExProto(("FlashWindowEx", windll.user32)) FLASHW_CAPTION = 0x01 FLASHW_TRAY = 0x02 FLASHW_TIMERNOFG = 0x0C params = FLASHWINDOW(sizeof(FLASHWINDOW), windll.kernel32.GetConsoleWindow(), FLASHW_CAPTION | FLASHW_TRAY | FLASHW_TIMERNOFG, 3, 0) FlashWindowEx(params)
def _callback(self, wType, uFmt, hConv, hsz1, hsz2, hDdeData, dwData1, dwData2): """DdeCallback callback function for processing Dynamic Data Exchange (DDE) transactions sent by DDEML in response to DDE events Parameters ---------- wType : transaction type (UINT) uFmt : clipboard data format (UINT) hConv : handle to conversation (HCONV) hsz1 : handle to string (HSZ) hsz2 : handle to string (HSZ) hDDedata : handle to global memory object (HDDEDATA) dwData1 : transaction-specific data (DWORD) dwData2 : transaction-specific data (DWORD) Returns ------- ret : specific to the type of transaction (HDDEDATA) """ if wType == XTYP_ADVDATA: # value of the data item has changed [hsz1 = topic; hsz2 = item; hDdeData = data] dwSize = DWORD(0) pData = DDE.AccessData(hDdeData, byref(dwSize)) if pData: item = create_string_buffer('\000' * 128) DDE.QueryString(self._idInst, hsz2, item, 128, CP_WINANSI) self.callback(pData, item.value) DDE.UnaccessData(hDdeData) return DDE_FACK else: print("Error: AccessData returned NULL! (err = %s)"% (hex(DDE.GetLastError(self._idInst)))) if wType == XTYP_DISCONNECT: print("Disconnect notification received from server") return 0
def WinMSGLoop(): """Run the main windows message loop.""" LPMSG = POINTER(MSG) LRESULT = c_ulong GetMessage = get_winfunc("user32", "GetMessageW", BOOL, (LPMSG, HWND, UINT, UINT)) TranslateMessage = get_winfunc("user32", "TranslateMessage", BOOL, (LPMSG,)) # restype = LRESULT DispatchMessage = get_winfunc("user32", "DispatchMessageW", LRESULT, (LPMSG,)) msg = MSG() lpmsg = byref(msg) while GetMessage(lpmsg, HWND(), 0, 0) > 0: TranslateMessage(lpmsg) DispatchMessage(lpmsg)