IPropertyPage::SetObjects 메서드(ocidl.h)
속성 페이지에 이 속성 페이지와 연결된 개체에 대한 포인터 배열을 제공합니다.
속성 페이지에서 IPropertyPage::Apply 호출을 받으면 적절한 인터페이스를 통해 이러한 개체에 값 변경 내용을 보내야 합니다. 속성 페이지는 해당 인터페이스를 쿼리해야 합니다. 개체가 속성 페이지에서 예상하는 인터페이스를 지원하지 않으면 이 메서드가 실패할 수 있습니다.
구문
HRESULT SetObjects(
[in] ULONG cObjects,
[in] IUnknown **ppUnk
);
매개 변수
[in] cObjects
ppUnk가 가리키는 배열의 포인터 수입니다. 이 매개 변수가 0이면 속성 페이지에서 이전에 이 메서드에 전달된 포인터를 해제해야 합니다.
[in] ppUnk
각 포인터가 이 속성 페이지(및 기타) 속성 페이지가 표시되는 속성 시트의 영향을 받는 고유한 개체를 식별하는 IUnknown 인터페이스 포인터 배열에 대한 포인터입니다. 속성 페이지는 해당 시점에 각 포인터에 대해 AddRef 를 호출하는 이러한 포인터를 캐시해야 합니다. 이 포인터 배열은 속성 시트를 호출하기 위해 OleCreatePropertyFrame 또는 OleCreatePropertyFrameIndirect 에 전달된 것과 동일합니다.
반환 값
이 메서드는 다음 값뿐만 아니라 E_FAIL, E_INVALIDARG, E_OUTOFMEMORY 및 E_UNEXPECTED 표준 반환 값을 반환할 수 있습니다.
반환 코드 | Description |
---|---|
|
속성 페이지에서 필요한 포인터를 성공적으로 저장했습니다. |
|
ppUnk의 개체 중 하나가 이 속성 페이지에서 예상하는 인터페이스를 지원하지 않으므로 이 속성 페이지와 통신할 수 없습니다. |
|
ppUnk의 주소가 잘못되었습니다. 예를 들어 NULL일 수 있습니다. |
설명
속성 페이지는 이 메서드에서 반환된 포인터 또는 다른 포인터를 통해 쿼리된 포인터를 유지하는 데 필요합니다. 이러한 특정 IUnknown 포인터를 보유하는 경우 속성 페이지는 SetObjects가 0과 같은 cObjects로 호출될 때까지 캐싱할 때 각각을 통해 AddRef를 호출해야 합니다. 이때 속성 페이지는 각 포인터를 통해 Release 를 호출하여 보유한 개체를 해제해야 합니다.
호출자는 IPropertyPage::Activate를 호출하기 전에 속성 페이지에 이러한 개체를 제공해야 하며, 페이지를 비활성화하거나 개체를 완전히 해제할 때 매개 변수로 SetObjects 를 0으로 호출해야 합니다. NULL이 아닌 ppUnk 매개 변수가 있는 SetObjects에 대한 각 호출은 cObjects 매개 변수에서 0이 있는 SetObjects에 대한 이후 호출과 일치해야 합니다.
구현자에 대한 참고 사항
E_NOTIMPL 유효한 반환 값이 아닙니다.요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | ocidl.h |