Проблема в том, что мне нужен объект интерфейса IMFAttributes, чтобы использовать его методы после создания, в этом примере SetUINT32. Итак, чтобы получить объект указателя, я использую attrib_config.contents, который возвращает объект IMAttributes. Однако попытка доступа к каким-либо методам приводит к ошибке доступа на чтение.
Вот соответствующий код, без спама всего файла.
Код: Выделить всё
class IMFAttributes(com.IUnknown):
_methods_ = [
.....
('SetUINT32',
com.STDMETHOD(POINTER(GUID), c_uint32))
]
MFCreateAttributes = mfplat.MFCreateAttributes
MFCreateAttributes.restype = HRESULT
MFCreateAttributes.argtypes = [POINTER(POINTER(IMFAttributes)), c_uint32]
Код: Выделить всё
HRESULT MFCreateAttributes(
IMFAttributes **ppMFAttributes,
UINT32 cInitialSize
)
Поэтому я все инициализировал и создал как таковое:< /p>
Код: Выделить всё
MF_LOW_LATENCY = com.GUID(0x9c27891a, 0xed7a, 0x40e1, 0x88, 0xe8, 0xb2, 0x27, 0x27, 0xa0, 0x24, 0xee)
MFStartup(MF_VERSION, 0)
attrib_config = POINTER(IMFAttributes)()
result = MFCreateAttributes(byref(attrib_config), 1)
attrib_config.contents.SetUINT32(byref(MF_LOW_LATENCY), 1)
Я новичок в ctypes, поэтому буду благодарен за любую помощь.
Подробнее здесь: https://stackoverflow.com/questions/604 ... ce-methods
Мобильная версия