SwapAPO COM接口关系图
2022-09-16
230
0
总目录为SwapAPODlllib,其UUIP定义为:
// SwapAPODlllib
//
[
uuid(7092F0B2-D28D-4095-95A7-6C37A97432A2),
version(1.0)
]
其包含2个COM类,分别为SFX和MFX
library SwapAPODlllib
{
importlib("stdole2.tlb");
// for Swap APO - MFX
[
uuid(06687E71-F043-403A-BF49-CB591BA6E103)
]
coclass SwapAPOMFX
{
interface IAudioProcessingObject;
interface IAudioProcessingObjectRT;
interface IAudioProcessingObjectConfiguration;
interface IMMNotificationClient;
interface IAudioSystemEffects;
[default] interface ISwapAPOMFX;
};
// for Swap APO - SFX
[
uuid(B48DEA3F-D962-425a-8D9A-9A5BB37A9904)
]
coclass SwapAPOSFX
{
interface IAudioProcessingObject;
interface IAudioProcessingObjectRT;
interface IAudioProcessingObjectConfiguration;
interface IMMNotificationClient;
interface IAudioSystemEffects;
[default] interface ISwapAPOSFX;
};
}
注意,看到,两个SFX和MFX的默认接口分别为ISwapAPOSFX和ISwapAPOMFX。其分别定义为:
// This is the SwapAPO interface.
[
object,
uuid(3865B91A-096E-4ACA-BF56-B17D49C77406),
pointer_default(unique)
]
interface ISwapAPOMFX : IUnknown
{
};
// This is the SwapAPO interface.
[
object,
uuid(658A4077-B277-4d14-97E1-0356044D8110),
pointer_default(unique)
]
interface ISwapAPOSFX : IUnknown
{
};
这可通过SwapAPOInterface.h定义验证,其路径为:
E:\Windows-driver-samples-master\Windows-driver-samples-master\audio\sysvad\APO\SwapAPO\x64\Release\SwapAPOInterface.h
- IID_ISwapAPOSFX:
EXTERN_C const IID IID_ISwapAPOSFX;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("658A4077-B277-4d14-97E1-0356044D8110")
ISwapAPOSFX : public IUnknown
{
public:
};
- IID_ISwapAPOMFX
EXTERN_C const IID IID_ISwapAPOMFX;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("3865B91A-096E-4ACA-BF56-B17D49C77406")
ISwapAPOMFX : public IUnknown
{
public:
};
#else /* C style interface */