ソス@ソスソスソスソスソスハ抵ソスソスソス
|
ソスEC/C++
ソスEDelphi
ソスEVisual BasicソスソスソスSソスソス
ソス@(VB2-VB6ソスソス.NETソスソスソスp)
ソスEVisual Basic(VB2-VB6)
ソスEVisual Basic .NET
ソスEVisual C++
ソスEpapy's softwarelibrary
ソスソスソスソスノゑソスソスヘ。
ソスソスソスハを調節ゑソスソスソスソスソスソスニ思ソスソス
ソスソスソスラてみゑソスソスフでゑソスソスソス
Vivasoft - Delphi
http://www.terra.dti.ne.jp/‾vivas/delphi/index.html#TMixer
ソスソスソスソスソスソスフプソスソスソスOソスソスソスソスソスソスWindowsXPソスナなゑソス
ソスソスソスハ抵ソスソス゚ゑソスソスナゑソスソスAソス‾ソスソスソス[ソスgON/OFFソスソスナゑソスソス驍アソスニゑソスソスかソスソスソスソスソスフでゑソスソスソス
WindowsVistaソスナは難ソスソスソスソスワゑソスソスソスナゑソスソスソスソスB
ソスワゑソスソスAソスgソスソスソスソスソス閧ェソスソスソスネゑソスしソスソスソスソスソスソスソスソスソスソストゑソスソスワゑソスソスB
ソスfソスoソスCソスXソスソスソスニの会ソスソスハの抵ソスソス゚は必ソスvソスネゑソスソスフゑソス
WindowsXPソスナゑソスAWindowsVistaソスナゑソス
ソスPソスノ、ソスソスソスハの上下ソスニミソスソスソス[ソスgソスソスON/OFFソスソスsソスソスソスソスソスソスソスソス
ソスソスソスソスソスmソスフ包ソスソスソスソスソスソスワゑソスソスソスソスソスAソスソスソスソスソストゑソスソスソスソスソスソスソスソスB
ソスソスしソスソスソスソスソス閧「ソスソスソスワゑソスソスB
ソスソスソスソスソスRソスソスソス|ソス[ソスlソスソスソスgソスノバソスOソスソスソスソスソスソスじゑソスネゑソスソスナゑソスソスソスソスヒ?
ソスニ鯉ソスソストなゑソスソスRソスソスソス|ソス[ソスlソスソスソスgソスフ指ソスEソスソスソスソストみゑソスB
http://hp.vector.co.jp/authors/VA016117/winsdk.html
ソス‾ソスLソスTソス[ソス@ソスソスソスフ1ソスiソスソスソスハの抵ソスソス゚)
ソス‾ソスLソスTソス[ソス@ソスソスソスフ2ソスiソス‾ソスソスソス[ソスgソスj
Vistaソスネ降ソスフ抵ソスソスソス
http://data.blogdns.net/blog/2007/12/core-audio-api.html
ソスネゑソスルど、ソスoソスOソスソスソスソスソスソスソストゑソスソスソスソスソストゑソスソスソスソスソス
Vistaソスナは鯉ソスソスソスソスノなゑソスソスソスソスフで難ソスソスソスソスネゑソスソスニ。
ソスソスソスソスソスソスソスソスソスソスソスRソスネゑソスナゑソスソスヒ。
ソスソスソスラてみまゑソスソスB
ソスソスソスソスソスソスソストゑソスソスソスヌゑソスツゑソスソストゑソスソスネゑソスソスソスソスナゑソスソスソスソスBソスソスソス閧ェソスニゑソスソスソスソスソスソスソスソスワゑソスソスB
ソスtソスqソスFソスuXPソスネゑソスmixerAPIソスナボソスソスソスソスソス[ソスソスソスフ抵ソスソスソスソスナゑソスソス驍ッソスヌね、VISTAソスヘダソスソスソスソスソスニ思ソスソスソスソスv
ソス^ソスユ:ソスuソスモ〜ソスソスAソスソスソスソスソスネの?ソスv
ソスtソスqソスFソスuソスソスソスソスソスAVISTAソスソスCOMソスナゑソスソスンゑソスソスソスソスAソスソスソスソスネカソスソスソスWソスネのゑソスソスネ? ソスソスソスソスソストなゑソスソスソスソス邇趣ソスソスソスネゑソスソスソスソスヌ」
...........
var
Form1: TForm1;
implementation
{$R *.DFM}
uses
ActiveX, MMDevAPI;
var
AudioEndpointVolume: IAudioEndpointVolume = nil;
procedure TForm1.FormCreate(Sender: TObject);
var
mmDeviceEnumerator: IMMDeviceEnumerator;
mmDevice: IMMDevice;
begin
CoCreateInstance(CLASS_IMMDeviceEnumerator, nil, CLSCTX_INPROC_SERVER, IID_IMMDeviceEnumerator, mmDeviceEnumerator);
if mmDeviceEnumerator = nil then exit;
mmDeviceEnumerator.GetDefaultAudioEndpoint(ERender, EConsole, mmDevice);
mmDevice.Activate(IID_IAudioEndpointVolume, CLSCTX_INPROC_SERVER, nil, AudioEndpointVolume);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Volume: Single;
begin
if AudioEndpointVolume = nil then exit;
Volume := 0.3;
AudioEndpointVolume.SetMasterVolumeLevelScalar(Volume, nil);
end;
end.
-----------------------------------------------------------------
unit MMDevAPI;
interface
uses
Windows, ActiveX, ComObj;
const
CLASS_IMMDeviceEnumerator : TGUID = '{BCDE0395-E52F-467C-8E3D-C4579291692E}';
IID_IMMDeviceEnumerator : TGUID = '{A95664D2-9614-4F35-A746-DE8DB63617E6}';
IID_IMMDevice : TGUID = '{D666063F-1587-4E43-81F1-B948E807363F}';
IID_IMMDeviceCollection : TGUID = '{0BD7A1BE-7A1A-44DB-8397-CC5392387B5E}';
IID_IAudioEndpointVolume : TGUID = '{5CDF2C82-841E-4546-9722-0CF74078229A}';
IID_IAudioMeterInformation : TGUID = '{C02216F6-8C67-4B5B-9D00-D008E73E0064}';
IID_IAudioEndpointVolumeCallback : TGUID = '{657804FA-D6AD-4496-8A60-352752AF4F89}';
DEVICE_STATE_ACTIVE = $00000001;
DEVICE_STATE_UNPLUGGED = $00000002;
DEVICE_STATE_NOTPRESENT = $00000004;
DEVICE_STATEMASK_ALL = $00000007;
type
EDataFlow = TOleEnum;
const
ERender = $00000000;
ECapture = $00000001;
EAll = $00000002;
EDataFlow_enum_count = $00000003;
type
ERole = TOleEnum;
const
EConsole = $00000000;
EMultimedia = $00000001;
ECommunications = $00000002;
ERole_enum_count = $00000003;
type
IAudioEndpointVolumeCallback = interface(IUnknown)
['{657804FA-D6AD-4496-8A60-352752AF4F89}']
end;
IAudioEndpointVolume = interface(IUnknown)
['{5CDF2C82-841E-4546-9722-0CF74078229A}']
function RegisterControlChangeNotify(AudioEndPtVol: IAudioEndpointVolumeCallback): Integer; stdcall;
function UnregisterControlChangeNotify(AudioEndPtVol: IAudioEndpointVolumeCallback): Integer; stdcall;
function GetChannelCount(out PInteger): Integer; stdcall;
function SetMasterVolumeLevel(fLevelDB: single; pguidEventContext: PGUID): Integer; stdcall;
function SetMasterVolumeLevelScalar(fLevelDB: single; pguidEventContext: PGUID): Integer; stdcall;
function GetMasterVolumeLevel(out fLevelDB: single): Integer; stdcall;
function GetMasterVolumeLevelScaler(out fLevelDB: single): Integer; stdcall;
function SetChannelVolumeLevel(nChannel: Integer; fLevelDB: Double; pguidEventContext: PGUID): Integer; stdcall;
function SetChannelVolumeLevelScalar(nChannel: Integer; fLevelDB: Double; pguidEventContext: PGUID): Integer; stdcall;
function GetChannelVolumeLevel(nChannel: Integer; out fLevelDB: Double): Integer; stdcall;
function GetChannelVolumeLevelScalar(nChannel: Integer; out fLevel: Double): Integer; stdcall;
function SetMute(bMute: Boolean; pguidEventContext: PGUID): Integer; stdcall;
function GetMute(out bMute: Boolean): Integer; stdcall;
function GetVolumeStepInfo(pnStep: Integer; out pnStepCount: Integer): Integer; stdcall;
function VolumeStepUp(pguidEventContext: PGUID): Integer; stdcall;
function VolumeStepDown(pguidEventContext: PGUID): Integer; stdcall;
function QueryHardwareSupport(out pdwHardwareSupportMask): Integer; stdcall;
function GetVolumeRange(out pflVolumeMindB: Double; out pflVolumeMaxdB: Double; out pflVolumeIncrementdB: Double): Integer; stdcall;
end;
IAudioMeterInformation = interface(IUnknown)
['{C02216F6-8C67-4B5B-9D00-D008E73E0064}']
end;
IPropertyStore = interface(IUnknown)
end;
type
IMMDevice = interface(IUnknown)
['{D666063F-1587-4E43-81F1-B948E807363F}']
function Activate(const refId: TGUID;
dwClsCtx: DWORD;
pActivationParams: PInteger;
out pEndpointVolume: IAudioEndpointVolume): Hresult; stdcall;
function OpenPropertyStore(stgmAccess: DWORD; out ppProperties: IPropertyStore): Hresult; stdcall;
function GetId(out ppstrId: PLPWSTR): Hresult; stdcall;
function GetState(out State: Integer): Hresult; stdcall;
end;
IMMDeviceCollection = interface(IUnknown)
['{0BD7A1BE-7A1A-44DB-8397-CC5392387B5E}']
end;
IMMNotificationClient = interface(IUnknown)
['{7991EEC9-7E89-4D85-8390-6C703CEC60C0}']
end;
IMMDeviceEnumerator = interface(IUnknown)
['{A95664D2-9614-4F35-A746-DE8DB63617E6}']
function EnumAudioEndpoints(dataFlow: EDataFlow; deviceState: SYSUINT; DevCollection: IMMDeviceCollection): Hresult; stdcall;
function GetDefaultAudioEndpoint(EDF: SYSUINT; ER: SYSUINT; out Dev: IMMDevice ): Hresult; stdcall;
function GetDevice(pwstrId: pointer; out Dev: IMMDevice): HResult; stdcall;
function RegisterEndpointNotificationCallback(pClient: IMMNotificationClient): Hresult; stdcall;
end;
implementation
end.
ソス^ソスユ:ソスuソスソスソスcソスソスソスソスソスネの…ソスv
ソスtソスqソスFソスuソスソスH ソス}ソスRソスgソスH ソスiソスソスソスソスソスEソスソスソスフソソスソスソスソスソストカソスソスソスWソスヒ、ソスヌゑソスソスソスソスソスソスソスソスフ?ソスv
ソス^ソスユ:ソスuソスAソス^ソスVソスAソスソスソスソスソスソスヌゑソスソスじソスソスネゑソスソスト…ソスソスソスソスソスソスソスソスソスソスが趣ソスソスじゃうソスソスソスソスcソスiソスソスソスニゑソスソスソスソスネゑソスソスニ…ソスv
ソスtソスqソスFソスuソスソスソスソスソスH ソスヒ然ソスiソスjソスソスソスソスソスoソスソスソスフ? ソス}ソスRソスgソスAソスヌゑソスソスソスソスソスソスRソスgソスHソスv
ソス^ソスユ:ソスuソスAソス^ソスVソスAソスソスソスソスンゑソスソスフ、ソスソスソスソスソスソスソスソスソスソスソスヘ台風ソスソスソス゚づゑソスソスソスソスCソスナサソス[ソスtソスBソスソスソスソスソスソスツゑソスソスcソスソスソスソスナ…ソスv
ソスtソスqソスFソスuソス}ソスRソスgソスAソス苺暦ソスネんか暦ソスソストなゑソスソスソスAソスソスソスソスノマソスTソスソスソスソスソスソスヘサソス[ソスtソスBソスソスソスネんか…ソスv
ソス^ソスユ:ソスuソスnソスソスソスRソスソスソスソスAソスAソス^ソスVソスソスソスソスソスソスソストゑソスフは、ソスRソスbソス`ソスソスソスソスネゑソスソストアソスbソス`ソスフコソスgソスv
ソスtソスqソスFソスuソスAソスbソス`ソスソスソスト、ソスhソスbソス`ソスH ソスcソストゑソスソスソスソスソスソスAソスソスソスソスソスソスト厄ソスソスネゑソスナゑソスソスソスHソスv
ソス^ソスユ:ソスuソスナゑソスソスソスナアソス^ソスVソスヘアソスbソス`ソスソスソスソストゑソスソスソスソスフ、ソスAソス^ソスVソスソスソスソスソスソスソスソスソスネゑソスソスネゑソスソスト、ソスソスソスソスソスソスソスソスソスソスソスヘ搾ソスソスソスlソスレゑソスソスソスソスcソスv
ソスtソスqソスFソスuソスソスソスソスソスソスソスソスト…ソスAソスbソス`ソスソスソスト、ソスネ前ソスノアソス^ソスVソスソスソスソスソスソスソスソスソスソス4ソスNソスソスフコソスgソスHソスv
ソス^ソスユ:ソスuソスソスソスソスソスAソスAソス^ソスVソスAソスソスソスソスソスヘ包ソスソスソスソスソスネゑソスソスcソスソスソスヌ、ソスソスソスフ厄ソスソスナハソスbソスLソスソスソスCソスtソスソスソスソスソスフ、ソスソスソスソスソスヘアソスbソス`ソスニは別の宇ソスソスソスソスソスソスソストコソスgソスcソスAソスRソスbソス`ソスフ趣ソスソスヤゑソス4ソスNソスソスソス轤「ソスxソスソストゑソスフ」
ソスtソスqソスFソスuソスソスソスcソスソスソスソスソスソスト…ソスソスソスsソスFソスソスソスH ソスcソスナゑソスAソスヌゑソスソスソスソスト茨ソスlソスレゑソスソスソスソスH ソスAソスbソス`ソスノはビソス[ソス`ソス{ソス[ソスCソスYソスフ難ソスlソスソスソス齒擾ソスノ具ソスソスソスヘゑソスソスネのに」
ソス^ソスユ:ソスuソスソスソスソスネ人ソスソスソスソスソスヘ具ソスソスネゑソスソスソスソスソスソスAソスcソス竄オソスソスソス紛ゑソスすソスソスソス゚にゑソスソスソスソスソスソスソスソスソスソスヘサソス[ソスtソスBソスソスソスソスワゑソスソスnソス゚ゑソスソスンゑソスソスソスソスv
ソスtソスqソスFソスuソスソスソスソスAソスソスソスソスソスH ソスソスソスソスソスヌ、ソス}ソスRソスgソスソスソスzソスソスソスgソスノ行ソスソスソスソスソスフなゑソスAソスiソスソスソスナ撰ソスソスソスソスソスト止ソス゚ゑソスソスソスソスネゑソスソスソスソスソスソスフ?ソスv
ソス^ソスユ:ソスuソスソスソス黷ェソス_ソスソスソスcソスAソスAソス^ソスVソスフ体はアソスbソス`ソスノ行ソスソスソストゑソスソスネゑソスソスAソスソスソスソスソスソスAソス^ソスVソスノ気ソスtソスソスソストゑソスソスソスネゑソスソスcソスAソスnソスソスソスRソスソスソスソスAソスソスソスソスソスソスソスソスソスソスソスソスソスソスソスソスソスソスソスソスソスAソスナゑソスヌゑソスソスソスソスソスソス轤「ソスソスソスフ?ソスv
ソスtソスqソスFソスuソスソスソス`ソスソスAソスソスソスソスソスネの…ソスAソスAソスbソス`ソスフ茨ソスlソスレゑソスソスソスソスフマソスTソスソスソスソスソスが趣ソスソスハゑソスソスソスソスソスソスネゑソスソスH ソスcソスソスソス痰滂ソスAソスソスソスフ前ソスノコソスbソス`ソスノ連ソスソストゑソスソスソスソスホ…ソスv
ソス^ソスユ:ソスuソスソスソスH ソスソスソスソスソスソスソスソスソスソスソスソスRソスbソス`ソスノ? ソスnソスソスソスRソスソスソスソスAソスソスソスソスネコソスgソスoソスソスソスソスHソスv
ソスtソスqソスFソスuソスAソス^ソスVソスソスソスソスソスナは撰ソスホに厄ソスソスソスソスAソスナゑソスAソス}ソスRソスgソスフ力ゑソスリゑソスソスホ、ソスソスソス驍「ソスヘ…ソスv
ソスEソスEソスEソスソスソスソスソスソスソスソスeソスソスソスソスソスヒ・ソスEソスE
ソスレ細、ソスソスソスラてゑソスソス轤ィソスヤ趣ソスソスソスソスソスナゑソスソスB