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 デバイスなど) の場合、このメソッドは通常、CreateFile (Microsoft Windows SDK ドキュメントで説明) を呼び出し、IStiDeviceControl::GetMyDevicePortNameを呼び出して取得したデバイス ポート名を使用して、デバイスへの読み取り/書き込みパスを作成します。
共有ポート上のデバイス (シリアル ポート デバイスなど) の場合は、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;
}
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | stiusd.h (Stiusd.h を含む) |