오디오를 재생하는 개별 응용 프로그램에 대해 Windows 오디오 믹서 설정을 지정하는 스크립트 작업 (audio sessions). IChannelAudioVolume API에 의해 노출 된 기본 Windows 기능인 오디오를 팬 (pan)하기 위해 채널 볼륨을 설정하고 싶습니다. Windows API 설명서에서 사용 된 인터페이스 이름에서 COM 클래스의 GUID를 가져 오는 방법은 무엇입니까?
from ctypes import HRESULT, POINTER, c_uint32, c_float
from comtypes import IUnknown, GUID, COMMETHOD
class ISimpleAudioVolume(IUnknown):
_iid_ = GUID('{87CE5498-68D6-44E5-9215-6DA47EF883D8}')
_methods_ = (
# HRESULT SetMasterVolume(
# [in] float fLevel,
# [in] LPCGUID EventContext);
COMMETHOD([], HRESULT, 'SetMasterVolume',
(['in'], c_float, 'fLevel'),
(['in'], POINTER(GUID), 'EventContext')), # ...
이 경우 이들의 GUID (
'{87CE5498-68D6-44E5-9215-6DA47EF883D8}'
)이 올 않습니다
나는 comtypes
에 GUID를 제공 선언, 부모 인터페이스 및 방법 세부에서 시작, comtypes
통해 pycaw
많은 COM 기반 Windows API를 사용하고 있음을 알 에서? 그들은 개별 인터페이스에 대한 문서에 없습니다. 그들은 공식적으로 어딘가에 문서화되어 있습니까? 또는 Windows의 인터페이스 이름 (예 : ISimpleAudioVolume
)에서 찾을 수있는 항목이 있습니까?
그동안 나는 인터페이스가 GUIDE 값인 {}
이없는 주제별로 유사한 인터페이스를 찾고 있습니다. 다른 코드와도 만나기를 희망합니다. 이것은 당장의 목적을 위해 충분히 잘 작동하지만 히트 또는 미스입니다.이 방법으로 찾은 GUID가 공개 API로 의도되었는지 여부는 분명하지 않습니다.
에 대한 섹션을 가지고,하지만 난 여전히 더 나은 방법이 생각한다. 어쩌면'.idl'에서'comtypes' 선언을 자동으로 생성하기위한 것이 있을까요? 그것은 결국 IDL의 핵심입니다. – rakslice