Freigeben über


Erstellen eines WIA-Geräte-Manager

Der erste Schritt bei der Verwendung von WIA-Diensten (Windows Image Acquisition) besteht darin, einen IWiaDevMgr-Schnittstellenzeiger (wenn Sie für Windows XP oder früher programmieren) oder einen IWiaDevMgr2-Schnittstellenzeiger (wenn Sie für Windows Vista oder höher programmieren) abzurufen. Rufen Sie dazu CoCreateInstance mit den entsprechenden Parametern auf. Die Beispielanwendung WiaSSamp erstellt einen Geräte-Manager innerhalb einer globalen Funktion, die durch den folgenden Code implementiert wird:

    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;
    }

In diesem Beispiel sind CLSID_WiaDevMgr und IID_IWiaDevMgr WIA-Konstanten, die die Klassen-ID bzw. die Schnittstellen-ID von IWiaDevMgr darstellen. CLSID_WiaDevMgr2 und IID_IWiaDevMgr2 sind WIA-Konstanten, die die Klassen-ID bzw. die Schnittstellen-ID von IWiaDevMgr2 darstellen.

Der Wert für das argument dwClsContext des CoCreateInstance-Aufrufs muss CLSCTX_LOCAL_SERVER sein. Kein anderer Servertyp wird unterstützt, und das Com-Objektmodell (Component Object Model) lehnt jeden anderen Wert für diesen Parameter ab.