Windows Vistaではミキサーがプロセス毎に制御出来る要になったのに伴い、以前のAudio Mixer APIではマスターボリューム値の設定/取得ができなくなりました。
代わりにVistaではCore Audio APIを使用します。
DelphiからCore Audio APIを使用するには、SDKのendpointvolume.h/mmdeviceapi.hをコンバートするか、タイプライブラリの取り込む必要があります。
後者の場合はVistaに開発環境がインストールされている必要があるので、今回はヘッダから必要な部分を手動でコンバートしました。
サンプルコード(拡張子をzipに変更してください)
なお再生デバイスではなく、録音デバイスを制御する場合はIMMDeviceEnumerator.GetDefaultAudioEndpointでeRenderではなくeCaptureを指定します。
代わりにVistaではCore Audio APIを使用します。
DelphiからCore Audio APIを使用するには、SDKのendpointvolume.h/mmdeviceapi.hをコンバートするか、タイプライブラリの取り込む必要があります。
後者の場合はVistaに開発環境がインストールされている必要があるので、今回はヘッダから必要な部分を手動でコンバートしました。
サンプルコード(拡張子をzipに変更してください)
なお再生デバイスではなく、録音デバイスを制御する場合はIMMDeviceEnumerator.GetDefaultAudioEndpointでeRenderではなくeCaptureを指定します。
スポンサーサイト
JVCLの方はバグ修正と細かい機能追加がメインです。
http://homepages.borland.com/jedi/jvcl/
新規に導入するにはJVCL330CompleteJCL198-Build2509.zipを入れるのがお手軽ですが、毎日のように機能追加/バグ修正が行われているためリリース版よりSVNの最新版を使用するのがオススメです。
http://homepages.borland.com/jedi/jvcl/
新規に導入するにはJVCL330CompleteJCL198-Build2509.zipを入れるのがお手軽ですが、毎日のように機能追加/バグ修正が行われているためリリース版よりSVNの最新版を使用するのがオススメです。
Delphi2006ではOfficeやIE,Firefox等のようにホイールボタンをクリックすることでオートスクロールする機能がVCLに追加されています。
これはプロジェクトソース等でIMouseユニットをusesすると有効になります。
オートスクロールが使用できるのはControlStyleにcsPannableが指定されているコンポーネントで、スクロールバーを持つほとんどのコンポーネントが対応しています。
パンとオートスクロールの違いがイマイチよく分かりませんが、パンはホイールボタンを押しながらスクロールさせるものだと思いますので、この機能の動作はパンではなくオートスクロールだと思います。
これはプロジェクトソース等でIMouseユニットをusesすると有効になります。
オートスクロールが使用できるのはControlStyleにcsPannableが指定されているコンポーネントで、スクロールバーを持つほとんどのコンポーネントが対応しています。
パンとオートスクロールの違いがイマイチよく分かりませんが、パンはホイールボタンを押しながらスクロールさせるものだと思いますので、この機能の動作はパンではなくオートスクロールだと思います。
アプリケーションウィンドウの問題として、タスクマネージャのアプリケーションタブに表示されるタスクが、アプリケーションウィンドウのものであるため最大化/最小化が正常に行えないという問題があります。せっかくなので、この問題にも対処してみます。
タスクとして表示されるのはオーナがデスクトップウィンドウかつ表示中のウィンドウのようなので、以下の方法で対処します。
アプリケーションウィンドウ: 非表示にしてタスクに表示されないようにする。
メインフォーム: オーナをデスクトップウィンドウにしてタスクに表示されるようにする。
タスクとして表示されるのはオーナがデスクトップウィンドウかつ表示中のウィンドウのようなので、以下の方法で対処します。
アプリケーションウィンドウ: 非表示にしてタスクに表示されないようにする。
メインフォーム: オーナをデスクトップウィンドウにしてタスクに表示されるようにする。