Функция 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, необходимо указать указатель на элемент управления unknown в punkOuter. В большинстве случаев вы не будете создавать агрегатный объект, поэтому punkOuter должен иметь значение NULL. Агрегирование объектов и управление неизвестными описаны в статье Агрегирование и спецификация объектной модели компонентов.
Требования
Требование | Значение |
---|---|
Заголовок | sti.h (включая Sti.h) |