1 importctypes,time2 importcomtypes3 from ctypes importwintypes4
5 MMDeviceApiLib =comtypes.GUID(6 '{2FDAAFA3-7523-4F66-9957-9D5E7FE698F6}')7 IID_IMMDevice =comtypes.GUID(8 '{D666063F-1587-4E43-81F1-B948E807363F}')9 IID_IMMDeviceCollection =comtypes.GUID(10 '{0BD7A1BE-7A1A-44DB-8397-CC5392387B5E}')11 IID_IMMDeviceEnumerator =comtypes.GUID(12 '{A95664D2-9614-4F35-A746-DE8DB63617E6}')13 IID_IAudioEndpointVolume =comtypes.GUID(14 '{5CDF2C82-841E-4546-9722-0CF74078229A}')15 CLSID_MMDeviceEnumerator =comtypes.GUID(16 '{BCDE0395-E52F-467C-8E3D-C4579291692E}')17
18 #EDataFlow
19 eRender = 0 #audio rendering stream
20 eCapture = 1 #audio capture stream
21 eAll = 2 #audio rendering or capture stream
22
23 #ERole
24 eConsole = 0 #games, system sounds, and voice commands
25 eMultimedia = 1 #music, movies, narration
26 eCommunications = 2 #voice communications
27
28 LPCGUID = REFIID =ctypes.POINTER(comtypes.GUID)29 LPFLOAT =ctypes.POINTER(ctypes.c_float)30 LPDWORD =ctypes.POINTER(wintypes.DWORD)31 LPUINT =ctypes.POINTER(wintypes.UINT)32 LPBOOL =ctypes.POINTER(wintypes.BOOL)33 PIUnknown =ctypes.POINTER(comtypes.IUnknown)34
35 classIMMDevice(comtypes.IUnknown):36 _iid_ =IID_IMMDevice37 _methods_ =(38 comtypes.COMMETHOD([], ctypes.HRESULT, 'Activate',39 (['in'], REFIID, 'iid'),40 (['in'],