Функция StiCreateInstanceW (sti.h)
Функция StiCreateInstance создает экземпляр COM-объекта, который определяет интерфейс IStillImage и возвращает указатель на интерфейс.
Синтаксис
HRESULT StiCreateInstanceW(
HINSTANCE hinst,
DWORD dwVer,
IStillImageW **ppSti,
LPUNKNOWN punkOuter
);
Параметры
hinst
Дескриптор вызываемого экземпляра вызывающего процесса. Этот дескриптор получается путем вызова GetModuleHandle(NULL).
dwVer
Номер версии STI, предоставленный вызывающим абонентом. Это значение должно быть STI_VERSION, определенное в Sti.h.
ppSti
Получает указатель на интерфейс IStillImage.
punkOuter
Необязательный указатель на указатель, предоставленный вызывающим объектом, на "контролируемый неизвестный" для агрегирования объектов. См. следующий раздел примечания.
Возвращаемое значение
Если операция выполнена успешно, метод возвращает S_OK. В противном случае возвращается один из кодов ошибок с префиксом STIERR, определенных в stierr.h.
Замечания
Чтобы приложение использовал интерфейс IStillImage, сначала необходимо вызвать функцию StiCreateInstance, чтобы получить указатель на интерфейс. Указатель, полученный в ppSti, используется впоследствии при вызове методов IStillImage, как показано в следующем примере:
PSTI pSti = NULL;
DWORD dwStiTotal = 0; // total number of STI devices found
PVOID pStiInfo = NULL; // STI device info buffer
HRESULT hres = StiCreateInstance(GetModuleHandle(NULL), STI_VERSION, &pSti, NULL);
...
hhes = pSti->GetDeviceList(0, 0, &dwStiTotal, &pStiInfo);
Если вы хотите создать агрегатный COM-объект, включающий IStillImage, необходимо указать указатель на "контролируемый неизвестный" в punkOuter. В большинстве случаев вы не создаете агрегатный объект, поэтому punkOuter должны быть NULL. Агрегирование объектов и управление неизвестными описаны в статье агрегирования и в спецификации объектной модели компонента.
Требования
Требование | Ценность |
---|---|
заголовка | sti.h (include Sti.h) |