__uuidof 在 C 主卷中 Windows
__uuidof in C Master Volume Windows
我想用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);
我只发现:Alternative to __uuidof in C
CLSID_MMDeviceEnumerator
和 IID_IMMDeviceEnumerator
定义为 in your API's header file,即 <mmdeviceapi.h>
.
您必须在 C 代码中使用这些定义,而不是 __uuidof
,因为这仅适用于 C++ 代码。
注意在<mmdeviceapi.h>
之前需要加上<initguid.h>
:
#include <initguid.h>
#include <mmdeviceapi.h>
那么这段代码应该可以工作:
hr = CoCreateInstance(
&CLSID_MMDeviceEnumerator, (*)
NULL,
CLSCTX_ALL,
&IID_IMMDeviceEnumerator, (*)
(void**)&deviceEnumerator
);
(*)
请注意,我使用了 &
(地址),因为在 C++ 中你有引用,但在 C 代码中你需要明确使用指针。
我想用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);
我只发现:Alternative to __uuidof in C
CLSID_MMDeviceEnumerator
和 IID_IMMDeviceEnumerator
定义为 in your API's header file,即 <mmdeviceapi.h>
.
您必须在 C 代码中使用这些定义,而不是 __uuidof
,因为这仅适用于 C++ 代码。
注意在<mmdeviceapi.h>
之前需要加上<initguid.h>
:
#include <initguid.h>
#include <mmdeviceapi.h>
那么这段代码应该可以工作:
hr = CoCreateInstance(
&CLSID_MMDeviceEnumerator, (*)
NULL,
CLSCTX_ALL,
&IID_IMMDeviceEnumerator, (*)
(void**)&deviceEnumerator
);
(*)
请注意,我使用了 &
(地址),因为在 C++ 中你有引用,但在 C 代码中你需要明确使用指针。