IStiUSD::Initialize メソッド (stiusd.h)
静止画像ミニドライバーの IStiUSD::Initialize メソッドは、 IStiUSD インターフェイスを定義する COM オブジェクトのインスタンスを初期化します。
構文
HRESULT Initialize(
PSTIDEVICECONTROL pHelDcb,
DWORD dwStiVersion,
HKEY hParametersKey
);
パラメーター
pHelDcb
IStiDeviceControl COM インターフェイスへの呼び出し元指定ポインター。
dwStiVersion
呼び出し元が指定した STI バージョン番号。 この値は 、Sti.h のSTI_VERSIONによって定義されます。
hParametersKey
デバイス固有の情報を格納するレジストリ キーへの呼び出し元指定ハンドル。
戻り値
操作が成功した場合、メソッドは S_OKを返す必要があります。 それ以外の場合は、 stierr.h で定義されている STIERR プレフィックス付きのエラー コードのいずれかを返す必要があります。
注釈
静止画像ミニドライバーによってエクスポートされる IStiUSD::Initialize メソッドは、ミニドライバーが読み込まれた後に呼び出される最初の IStiUSD メソッドです。 メソッドは、ドライバーとデバイスを初期化する必要があります。
メソッドは、受信した IStiDeviceControl COM インターフェイス ポインターを格納し、そのインターフェイスの IStiDeviceControl::AddRef メソッドを呼び出す必要があります。
専用ポート (SCSI デバイスなど) に接続されているデバイスの場合、通常、メソッドは、IStiDeviceControl::GetMyDevicePortName を呼び出して取得したデバイス ポート名を使用して、CreateFile (Microsoft Windows SDK ドキュメントで説明) を呼び出すことによって、デバイスへの読み取り/書き込みパスを作成します。
共有ポート上のデバイス (シリアル ポート デバイスなど) の場合は、ポート上の他のデバイスへのアクセスがロックアウトされるため、IStiUSD::Initialize メソッドでポートを開くのはお勧めしません。このようなデバイスの場合は、IStiUSD::LockDevice メソッド内から CreateFile を呼び出す方が適切です。
開いているデバイスが、CreateFile への複数の呼び出しが許可されていないデバイス (シリアル ポートに接続されているデバイスなど) である場合、次の CodeExample に示すように、呼び出し元がデータ転送用にデバイスを開かない限り、ドライバーは通常 CreateFile を呼び出しません。
IStiUSD::Initialize メソッドは、受信した STI バージョン番号を検証し、受信したバージョンがドライバーのバージョンと一致しない場合にエラーを返す必要があります。
次の例では、 IStiDeviceControl::GetMyDeviceOpenMode の呼び出しが、アプリケーションがデータ転送のためにデバイスを開いたと示している場合にのみ、デバイス ポートを開きます。 このようなコードは、シリアル ポート デバイスなど、複数の CreateFile 呼び出しをサポートできないデバイスに使用できます。
例
STDMETHODIMP MyUSDDevice::Initialize(
PSTIDEVICECONTROL pDcb,
DWORD dwStiVersion,
HKEY hParametersKey)
{
HRESULT hres = STI_OK;
DWORD dwMode = 0;
if (!pDcb)
{
hres = STIERR_INVALID_PARAM;
}
else
{
// Store IStiDeviceControl object pointer
m_pDcb = pDcb;
m_pDcb->AddRef();
// If we opened in data mode - should open device right now,
// otherwise postpone open till lock
m_pDcb->GetMyDeviceOpenMode(&dwMode);
if (dwMode & STI_DEVICE_CREATE_DATA)
hres = OpenMyPort();
}
return hres;
}
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | stiusd.h (Stiusd.h を含む) |