Функция 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) |