Создание устройства
После того как приложение получает идентификатор заданного устройства, оно может вызвать метод IWiaDevMgr::CreateDevice или IWiaDevMgr2::CreateDevice, который создает иерархическое дерево объектов IWiaItem или IWiaItem2 , представляющих устройство обработки изображений, а также кровати сканирования изображений, а также папки, содержащиеся на этом устройстве.
В следующем примере из примера приложения WiaSSamp реализуется функция, которая принимает идентификатор устройства в качестве параметра. Сведения о том, как получить идентификатор устройства для конкретного устройства, см. в разделе Чтение свойств устройства.
//XP or earlier:
HRESULT CreateWiaDevice( IWiaDevMgr *pWiaDevMgr, BSTR bstrDeviceID, IWiaItem **ppWiaDevice )
//Vista or later:
HRESULT CreateWiaDevice( IWiaDevMgr2 *pWiaDevMgr, BSTR bstrDeviceID, IWiaItem2 **ppWiaDevice )
{
//
// Validate arguments
//
if (NULL == pWiaDevMgr || NULL == bstrDeviceID || NULL == ppWiaDevice)
{
return E_INVALIDARG;
}
//
// Initialize out variables
//
*ppWiaDevice = NULL;
//
// Create the WIA Device
//
HRESULT hr = pWiaDevMgr->CreateDevice( bstrDeviceID, ppWiaDevice );
//
// Return the result of creating the device
//
return hr;
}
В этом примере pWiaDevMgr является указателем на интерфейс IWiaDevMgr или IWiaDevMgr2 , а ppWiaDevice — это переменная, которая после вызова IWiaDevMgr::CreateDevice (или IWiaDevMgr2::CreateDevice) содержит адрес указателя на корневой элемент дерева, представляющего только что созданное устройство.