LPMMIOPROC
コールバックシグネチャ
LRESULT LPMMIOPROC(
LPSTR lpmmioinfo,
DWORD uMsg,
LPARAM lParam1,
LPARAM lParam2
);パラメーター
| フィールド | 型 | 説明 |
|---|---|---|
| lpmmioinfo | LPSTR | 開いているファイルに関する情報を格納した MMIOINFO 構造体へのポインターです。 I/O プロシージャは、次の読み取り位置または書き込み位置を示すファイルオフセットとして、この構造体の lDiskOffset メンバーを維持する必要があります。I/O プロシージャは、状態情報の保存に adwInfo[] メンバーを使用できます。I/O プロシージャは、MMIOINFO 構造体のその他のメンバーを変更しないでください。 |
| uMsg | DWORD | 要求された I/O 操作を示すメッセージを指定します。受け取る可能性のあるメッセージには、MMIOM_OPEN、MMIOM_CLOSE、MMIOM_READ、MMIOM_SEEK、MMIOM_WRITE、MMIOM_WRITEFLUSH があります。 |
| lParam1 | LPARAM | メッセージに対するアプリケーション定義のパラメーターを指定します。 |
| lParam2 | LPARAM | メッセージに対するアプリケーション定義のパラメーターを指定します。 |
公式ドキュメント
MMIOProc 関数は、mmioInstallIOProc 関数によってインストールされるカスタム入出力 (I/O) プロシージャです。MMIOProc は、アプリケーション定義の関数名のプレースホルダーです。この関数のアドレスは、mmioInstallIOProc のコールバックアドレスのパラメーターに指定できます。
戻り値
戻り値は、uMsg で指定されたメッセージによって異なります。I/O プロシージャがメッセージを認識しない場合は、0 を返してください。
解説(Remarks)
ファイルに関連付けられた MMIOINFO 構造体の fccMMIOProc メンバーで指定される 4 文字コードは、カスタムストレージシステム用のファイル名拡張子を識別します。アプリケーションが "one.xyz+two" のようなファイル名を指定して mmioOpen を呼び出すと、4 文字コード "XYZ" に関連付けられた I/O プロシージャが呼び出され、ファイル "one.xyz" の "two" 要素が開かれます。
mmioInstallIOProc 関数は、Windows ベースのアプリケーションごとに、インストールされた I/O プロシージャの一覧を個別に管理します。そのため、異なるアプリケーションが同じ I/O プロシージャ識別子を別々の I/O プロシージャに使用しても競合しません。ただし、I/O プロシージャをグローバルにインストールすると、任意のプロセスがそのプロシージャを使用できるようになります。
アプリケーションが同じ I/O プロシージャを登録するために mmioInstallIOProc を複数回呼び出した場合は、インストールした回数と同じ回数だけ mmioInstallIOProc を呼び出してプロシージャを削除する必要があります。
mmioInstallIOProc は、アプリケーションが同じ識別子で 2 つの異なる I/O プロシージャをインストールすることや、定義済みの識別子 ("DOS "、"MEM ") で I/O プロシージャをインストールすることを妨げません。最後にインストールされたプロシージャが優先され、最後にインストールされたプロシージャが最初に削除されます。
指定された I/O プロシージャを検索するときは、最初にローカルのプロシージャが検索され、次にグローバルのプロシージャが検索されます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)