MMIOPROC コールバック関数 (mmiscapi.h)
MMIOProc 関数は、mmioInstallIOProc 関数によってインストールされるカスタム入出力 (I/O) プロシージャです。 MMIOProc は、アプリケーション定義関数名のプレースホルダーです。 この関数のアドレスは、 mmioInstallIOProc の callback-address パラメーターで指定できます。
構文
MMIOPROC Mmioproc;
LRESULT Mmioproc(
LPSTR lpmmioinfo,
UINT uMsg,
LPARAM lParam1,
LPARAM lParam2
)
{...}
パラメーター
lpmmioinfo
開いているファイルに関する情報を含む MMIOINFO 構造体を指します。
I/O プロシージャーは、次の読み取りまたは書き込み位置へのファイル・オフセットを示すために、この構造体の lDiskOffset メンバーを維持する必要があります。 I/O プロシージャでは 、adwInfo[] メンバーを使用して状態情報を格納できます。 入出力プロシージャーは 、MMIOINFO 構造体の他のメンバーを変更しないでください。
uMsg
要求された I/O 操作を示すメッセージを指定します。 受信できるメッセージには、 MMIOM_OPEN、 MMIOM_CLOSE、MMIOM_READ、 MMIOM_SEEK、 MMIOM_WRITE、 MMIOM_WRITEFLUSHが 含まれます。
lParam1
メッセージのアプリケーション定義パラメーターを指定します。
lParam2
メッセージのアプリケーション定義パラメーターを指定します。
戻り値
戻り値は、 uMsg で指定されたメッセージによって異なります。 I/O プロシージャがメッセージを認識しない場合は、0 を返す必要があります。
注釈
ファイルに関連付けられた 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 を呼び出して、プロシージャをインストールするたびにプロシージャを 1 回削除する必要があります。
mmioInstallIOProc では、アプリケーションが同じ識別子を持つ 2 つの異なる I/O プロシージャをインストールしたり、定義済みの識別子 ("DOS"、"MEM") のいずれかを使用して I/O プロシージャをインストールしたりすることを防ぐものではありません。 最後にインストールされたプロシージャが優先され、最後にインストールされたプロシージャが最初に削除されます。
指定した I/O プロシージャーを検索する場合は、最初にローカル・プロシージャー、次にグローバル・プロシージャーが検索されます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | mmiscapi.h (Mmiscapi.h、Windows.h を含む) |