11 #include "resources.h"
13 typedef struct _MIXER_WINDOW
17 struct _SND_MIXER
*Mixer
;
19 } MIXER_WINDOW
, *PMIXER_WINDOW
;
21 extern HINSTANCE hAppInstance
;
22 extern ATOM MainWindowClass
;
24 extern HANDLE hAppHeap
;
26 #define SZ_APP_CLASS TEXT("Volume Control")
28 ULONG
DbgPrint(PCH
, ...);
29 #define DPRINT DbgPrint("SNDVOL32: %s:%i: ", __FILE__, __LINE__); DbgPrint
36 typedef struct _SND_MIXER_CONNECTION
38 struct _SND_MIXER_CONNECTION
*Next
;
40 LPMIXERCONTROL Controls
;
42 } SND_MIXER_CONNECTION
, *PSND_MIXER_CONNECTION
;
45 typedef struct _SND_MIXER_DESTINATION
47 struct _SND_MIXER_DESTINATION
*Next
;
49 LPMIXERCONTROL Controls
;
51 PSND_MIXER_CONNECTION Connections
;
52 } SND_MIXER_DESTINATION
, *PSND_MIXER_DESTINATION
;
54 typedef struct _SND_MIXER
57 HWND hWndNotification
;
61 PSND_MIXER_DESTINATION Lines
;
62 } SND_MIXER
, *PSND_MIXER
;
64 typedef BOOL (CALLBACK
*PFNSNDMIXENUMLINES
)(PSND_MIXER Mixer
, LPMIXERLINE Line
, UINT DisplayControls
, PVOID Context
);
65 typedef BOOL (CALLBACK
*PFNSNDMIXENUMCONNECTIONS
)(PSND_MIXER Mixer
, DWORD LineID
, LPMIXERLINE Line
, PVOID Context
);
66 typedef BOOL (CALLBACK
*PFNSNDMIXENUMPRODUCTS
)(PSND_MIXER Mixer
, UINT Id
, LPCTSTR ProductName
, PVOID Context
);
68 PSND_MIXER
SndMixerCreate(HWND hWndNotification
);
69 VOID
SndMixerDestroy(PSND_MIXER Mixer
);
70 VOID
SndMixerClose(PSND_MIXER Mixer
);
71 BOOL
SndMixerSelect(PSND_MIXER Mixer
, UINT MixerId
);
72 UINT
SndMixerGetSelection(PSND_MIXER Mixer
);
73 INT
SndMixerGetProductName(PSND_MIXER Mixer
, LPTSTR lpBuffer
, UINT uSize
);
74 INT
SndMixerGetLineName(PSND_MIXER Mixer
, DWORD LineID
, LPTSTR lpBuffer
, UINT uSize
, BOOL LongName
);
75 BOOL
SndMixerEnumProducts(PSND_MIXER Mixer
, PFNSNDMIXENUMPRODUCTS EnumProc
, PVOID Context
);
76 INT
SndMixerGetDestinationCount(PSND_MIXER Mixer
);
77 BOOL
SndMixerEnumLines(PSND_MIXER Mixer
, PFNSNDMIXENUMLINES EnumProc
, PVOID Context
);
78 BOOL
SndMixerEnumConnections(PSND_MIXER Mixer
, DWORD LineID
, PFNSNDMIXENUMCONNECTIONS EnumProc
, PVOID Context
);
79 BOOL
SndMixerIsDisplayControl(PSND_MIXER Mixer
, LPMIXERCONTROL Control
);
85 extern HKEY hAppSettingsKey
;
94 AllocAndLoadString(OUT LPWSTR
*lpTarget
,
99 LoadAndFormatString(IN HINSTANCE hInstance
,
101 OUT LPWSTR
*lpTarget
,
105 ReadLineConfig(IN LPTSTR szDeviceName
,
106 IN LPTSTR szLineName
,
107 IN LPTSTR szControlName
,
110 #endif /* __SNDVOL32_H */