次の方法で共有


WIA デバイス マネージャーの作成

Windows Image Acquisition (WIA) サービスを使用する最初の手順は、 IWiaDevMgr インターフェイス ポインター (Windows XP 以前のプログラミングを行っている場合) または IWiaDevMgr2 インターフェイス ポインター (Windows Vista 以降のプログラミングの場合) を取得することです。 これを行うには、適切なパラメーターを使用して CoCreateInstance を呼び出します。 サンプル アプリケーション WiaSSamp は、次のコードによって実装されるグローバル関数内にデバイス マネージャーを作成します。

    HRESULT CreateWiaDeviceManager( IWiaDevMgr **ppWiaDevMgr ) //XP or earlier
    HRESULT CreateWiaDeviceManager( IWiaDevMgr2 **ppWiaDevMgr ) //Vista or later
    {
        //
        // Validate arguments
        //
        if (NULL == ppWiaDevMgr)
        {
            return E_INVALIDARG;
        }

        //
        // Initialize out variables
        //
        *ppWiaDevMgr = NULL;

        //
        // Create an instance of the device manager
        //
        
        //XP or earlier:
        HRESULT hr = CoCreateInstance( CLSID_WiaDevMgr, NULL, CLSCTX_LOCAL_SERVER, IID_IWiaDevMgr, (void**)ppWiaDevMgr );

        //Vista or later:
        HRESULT hr = CoCreateInstance( CLSID_WiaDevMgr2, NULL, CLSCTX_LOCAL_SERVER, IID_IWiaDevMgr2, (void**)ppWiaDevMgr ); 

        //
        // Return the result of creating the device manager
        //
        return hr;
    }

この例では、CLSID_WiaDevMgrとIID_IWiaDevMgrは、それぞれ IWiaDevMgr のクラス ID とインターフェイス ID を表す WIA 定数です。 CLSID_WiaDevMgr2とIID_IWiaDevMgr2は、クラス ID と IWiaDevMgr2 のインターフェイス ID をそれぞれ表す WIA 定数です。

CoCreateInstance 呼び出しの dwClsContext 引数の値はCLSCTX_LOCAL_SERVERする必要があります。 他のサーバーの種類はサポートされておらず、コンポーネント オブジェクト モデル (COM) はこのパラメーターの他の値を拒否します。