다음을 통해 공유


IOleItemContainer::GetObject 메서드(oleidl.h)

지정된 개체에 대한 포인터를 검색합니다.

구문

HRESULT GetObject(
  [in]  LPOLESTR pszItem,
  [in]  DWORD    dwSpeedNeeded,
  [in]  IBindCtx *pbc,
  [in]  REFIID   riid,
  [out] void     **ppvObject
);

매개 변수

[in] pszItem

요청된 개체의 컨테이너 이름입니다.

[in] dwSpeedNeeded

호출자가 개체를 가져오기 위해 대기하는 시간을 대략적으로 나타냅니다. 가능한 값은 BINDSPEED 열거형에서 가져옵니다.

[in] pbc

이 바인딩 작업에 사용할 바인딩 컨텍스트 개체의 IBindCtx 인터페이스에 대한 포인터입니다. 바인딩 컨텍스트는 바인딩 프로세스 중에 바인딩된 개체를 캐시하고, 바인딩 컨텍스트를 사용하여 모든 작업에 적용되는 매개 변수를 포함하며, 바인딩 구현이 해당 환경에 대한 정보를 검색해야 하는 수단을 제공합니다.

[in] riid

요청된 인터페이스 포인터의 식별자에 대한 참조입니다.

[out] ppvObject

riid에서 요청된 인터페이스 포인터를 수신하는 포인터 변수의 주소입니다. 반환이 성공하면 *ppvObject 에는 pszItem으로 명명된 개체에 대한 요청된 인터페이스 포인터가 포함됩니다. 성공하면 구현은 *ppvObject에서 AddRef를 호출해야 합니다. 릴리스를 호출하는 것은 호출자의 책임입니다. 오류가 발생하면 구현에서 *ppvObjectNULL로 설정합니다.

반환 값

이 메서드는 E_OUTOFMEMORY 표준 반환 값과 다음 값을 반환할 수 있습니다.

반환 코드 Description
S_OK
메서드가 완료되었습니다.
MK_E_EXCEEDEDDEADLINE
바인딩 컨텍스트의 BIND_OPTS 구조에 지정된 시간 제한 내에서 또는 dwSpeedNeeded 매개 변수로 표시된 속도로 바인딩 작업을 완료할 수 없습니다.
MK_E_NOOBJECT
pszItem 매개 변수는 이 컨테이너의 개체를 식별하지 않습니다.
E_NOINTERFACE
요청된 인터페이스를 사용할 수 없습니다.

설명

IMoniker::BindToObject의 항목 모니커 구현은 이 메서드를 호출하여 항목 모니커 내에 저장된 이름을 pszItem 매개 변수로 전달합니다.

구현자에 대한 참고 사항

IOleItemContainer::GetObject 구현은 먼저 pszItem이 컨테이너의 개체 중 하나에 유효한 이름인지 여부를 결정해야 합니다. 그렇지 않은 경우 MK_E_NOOBJECT 반환해야 합니다.

pszItem이 포함된 개체 또는 연결된 개체의 이름을 지정하는 경우 구현은 dwSpeedNeeded 매개 변수의 값을 검사 합니다. 값이 BINDSPEED_IMMEDIATE 개체가 아직 로드되지 않은 경우 MK_E_EXCEEDEDDEADLINE 반환해야 합니다. 개체가 로드되면 구현에서 개체가 실행 중인지 여부를 결정해야 합니다(예: OleIsRunning 함수 호출). 실행되고 있지 않고 dwSpeedNeeded 값이 BINDSPEED_MODERATE 경우 구현은 MK_E_EXCEEDEDDEADLINE 반환해야 합니다. 개체가 실행되고 있지 않고 dwSpeedNeeded가 BINDSPEED_INDEFINITE 경우 구현에서 OleRun 함수를 호출하여 개체를 실행 중 상태로 유지해야 합니다. 그런 다음 요청된 인터페이스에 대한 개체를 쿼리할 수 있습니다. 인터페이스를 쿼리하기 전에 개체를 실행하는 것이 중요합니다.

pszItem의 이름을 의사 개체로 지정하면 컨테이너가 실행될 때마다 의사 개체가 실행되므로 구현에서 dwSpeedNeeded 매개 변수를 무시할 수 있습니다. 이 경우 구현은 단순히 요청된 인터페이스를 쿼리할 수 있습니다.

dwSpeedNeeded에서 제공하는 것보다 시간 제한에 대한 보다 구체적인 정보가 필요한 경우 pbc 매개 변수에서 IBindCtx::GetBindOptions를 호출하여 실제 최종 기한 매개 변수를 가져올 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 oleidl.h

추가 정보

IOleItemContainer