IWiaItem2::GetExtension 메서드
WIA(Windows Image Acquisition) 2.0 디바이스 드라이버와 함께 제공되는 확장 인터페이스를 가져옵니다.
구문
HRESULT GetExtension(
[in] LONG lFlags,
[in] BSTR bstrName,
[in] REFIID riidExtensionInterface,
[out] VOID **ppOut
);
매개 변수
-
lFlags [in]
-
형식: LONG
현재 사용되지 않습니다. 0으로 설정해야 합니다.
-
bstrName [in]
-
형식: BSTR
호출 애플리케이션에 포인터가 필요한 확장의 이름을 지정합니다.
-
SegmentationFilter
-
구분 필터 확장입니다. 현재 이 매개 변수에 대해 유효한 유일한 값입니다.
riidExtensionInterface [in]
형식: REFIID
확장 인터페이스의 식별자를 지정합니다.
ppOut [out]
형식: VOID**
확장 인터페이스에 대한 포인터의 주소를 받습니다.
반환 값
형식: HRESULT
메서드가 성공하면 S_OK를 반환하고, 그러지 않으면 HRESULT 오류 코드를 반환합니다.
설명
애플리케이션은 WIA 2.0 드라이버 확장 인터페이스 중 하나를 구현하는 확장 개체를 만들기 위해 이 메서드를 호출합니다. IWiaItem2::GetExtension 은 확장 개체의 확장 인터페이스 주소를 riidExtensionInterface 매개 변수에 저장합니다. 그런 다음 애플리케이션은 인터페이스 포인터를 사용하여 메서드를 호출합니다.
애플리케이션은 riidExtensionInterface 매개 변수를 통해 수신하는 인터페이스 포인터에서 IUnknown::Release 메서드를 호출해야 합니다.
예제
CreateSegmentationFilter는 전달된 IWiaItem2 인터페이스에서 IWiaItem2::GetExtension을 호출하여 드라이버의 구분 필터(IWiaSegmentationFilter)의 instance 만듭니다.
HRESULT
CreateSegmentationFilter(
IWiaItem2 *pWiaItem2,
IWiaSegmentationFilter **ppSegmentationFilter)
{
HRESULT hr = S_OK;
IWiaSegmentationFilter *pSegFilter = NULL;
if (!pWiaItem2 || !ppSegmentationFilter)
{
hr = E_INVALIDARG;
}
if (SUCCEEDED(hr))
{
BSTR bstrFilterString = SysAllocString(WIA_SEGMENTATION_FILTER_STR);
if (bstrFilterString)
{
hr = pWiaItem2->GetExtension(0,
bstrFilterString,
IID_IWiaSegmentationFilter,
(void**)&pSegFilter);
SysFreeString(bstrFilterString);
bstrFilterString = NULL;
}
else
{
hr = E_OUTOFMEMORY;
}
}
if (SUCCEEDED(hr))
{
*ppSegmentationFilter = pSegFilter;
pSegFilter = NULL;
}
return hr;
}
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 |
Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 |
Windows Server 2008 [데스크톱 앱만 해당] |
헤더 |
|
IDL |
|