我想用C更改主音量,但__uuidof
仅适用于C++;我可以用什么来代替它?
const CLSID CLSID_MMDeviceEnumerator = __uuidof(MMDeviceEnumerator);
const IID IID_IMMDeviceEnumerator = __uuidof(IMMDeviceEnumerator);
hr = CoCreateInstance(
CLSID_MMDeviceEnumerator, NULL,
CLSCTX_ALL, IID_IMMDeviceEnumerator,
(void**)&deviceEnumerator);
最佳答案
CLSID_MMDeviceEnumerator
和IID_IMMDeviceEnumerator
定义in your API's header file ,即<mmdeviceapi.h>
.
您必须在 C 代码中使用这些定义,而不是 __uuidof
,因为这仅适用于 C++ 代码。
请注意,您需要包含 <initguid.h>
之前<mmdeviceapi.h>
:
#include <initguid.h>
#include <mmdeviceapi.h>
那么这段代码应该可以工作:
hr = CoCreateInstance(
&CLSID_MMDeviceEnumerator, (*)
NULL,
CLSCTX_ALL,
&IID_IMMDeviceEnumerator, (*)
(void**)&deviceEnumerator
);
(*)
请注意,我使用了 &
(address-of),因为在 C++ 中你有引用,但在 C 代码中你需要显式地使用指针。
关于c - C Master Volume Windows 中的 __uuidof,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47012491/