Ejemplo n.º 1
0
/*****************************************************************************

CreateDeviceFromID

Utility for attaching to WIA and getting a root IWiaItem interface

*****************************************************************************/
HRESULT
CreateDeviceFromId (__in LPWSTR szDeviceId, IWiaItem **ppItem)
{
    IWiaDevMgr *pDevMgr;
    HRESULT hr = CoCreateInstance (CLSID_WiaDevMgr,
                                   NULL,
                                   CLSCTX_LOCAL_SERVER,
                                   IID_IWiaDevMgr,
                                   reinterpret_cast<LPVOID*>(&pDevMgr));
    if (SUCCEEDED(hr))
    {
        BSTR strId = SysAllocString (szDeviceId);
        if (strId)
        {
            hr = pDevMgr->CreateDevice (strId, ppItem);
            SysFreeString (strId);
        }
        else
        {
            hr = E_OUTOFMEMORY;
        }
        pDevMgr->Release ();
    }
    return hr;
}
Ejemplo n.º 2
0
int __cdecl _tmain( int, TCHAR *[] )
{
    //
    // Initialize COM
    //
    HRESULT hr = CoInitialize(NULL);
    if (SUCCEEDED(hr))
    {
        //
        // Create the device manager
        //
        IWiaDevMgr *pWiaDevMgr = NULL;
        hr = CreateWiaDeviceManager( &pWiaDevMgr );
        if (SUCCEEDED(hr))
        {
            //
            // Enumerate all of the WIA devices
            //
            hr = EnumerateWiaDevices( pWiaDevMgr );
            if (FAILED(hr))
            {
                ReportError( TEXT("Error calling EnumerateWiaDevices"), hr );
            }

            //
            // Release the device manager
            //
            pWiaDevMgr->Release();
            pWiaDevMgr = NULL;
        }
        else
        {
            ReportError( TEXT("Error calling CreateWiaDeviceManager"), hr );
        }

        //
        // Uninitialize COM
        //
        CoUninitialize();
    }
    return 0;
}