2024-06-07 00:47:07 +02:00

65 lines
1.8 KiB
C#

using NAudio.Wasapi.CoreAudioApi.Interfaces;
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text;
namespace NAudio.CoreAudioApi.Interfaces
{
/// <summary>
/// Windows CoreAudio IPart interface
/// Defined in devicetopology.h
/// </summary>
[Guid("AE2DE0E4-5BCA-4F2D-AA46-5D13F8FDB3A9"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown),
ComImport]
internal interface IPart
{
int GetName(
[Out, MarshalAs(UnmanagedType.LPWStr)] out string name);
int GetLocalId(
[Out] out uint id);
int GetGlobalId(
[Out, MarshalAs(UnmanagedType.LPWStr)] out string id);
int GetPartType(
[Out] out PartTypeEnum partType);
int GetSubType(
out Guid subType);
int GetControlInterfaceCount(
[Out] out uint count);
int GetControlInterface(
[In] uint index,
[Out, MarshalAs(UnmanagedType.IUnknown)] out IControlInterface controlInterface);
[PreserveSig]
int EnumPartsIncoming(
[Out] out IPartsList parts);
[PreserveSig]
int EnumPartsOutgoing(
[Out] out IPartsList parts);
int GetTopologyObject(
[Out] out object topologyObject);
[PreserveSig]
int Activate(
[In] ClsCtx dwClsContext,
[In] ref Guid refiid,
[MarshalAs(UnmanagedType.IUnknown)] out object interfacePointer);
int RegisterControlChangeCallback(
[In] ref Guid refiid,
[In] IControlChangeNotify notify);
int UnregisterControlChangeCallback(
[In] IControlChangeNotify notify);
}
}