IParseDisplayName::P arseDisplayName 메서드(oleidl.h)
지정된 표시 이름을 구문 분석하고 해당 모니커를 만듭니다.
구문
HRESULT ParseDisplayName(
[in] IBindCtx *pbc,
[in] LPOLESTR pszDisplayName,
[out] ULONG *pchEaten,
[out] IMoniker **ppmkOut
);
매개 변수
[in] pbc
이 바인딩 작업에 사용할 바인딩 컨텍스트에 대한 포인터입니다. IBindCtx를 참조하세요.
[in] pszDisplayName
구문 분석할 표시 이름입니다.
[out] pchEaten
ppmkOut 모니커에 해당하는 표시 이름의 문자 수를 받는 변수에 대한 포인터입니다.
[out] ppmkOut
결과 모니커에 대한 인터페이스 포인터를 수신하는 IMoniker 포인터 변수에 대한 포인터입니다. 오류가 발생하면 구현에서 *ppmkOut 을 NULL로 설정합니다. *ppmkOut 이 NULL이 아닌 경우 구현은 AddRef를 호출해야 합니다. 릴리스를 호출하는 것은 호출자의 책임입니다.
반환 값
이 메서드는 다음 값뿐만 아니라 E_OUTOFMEMORY 및 E_UNEXPECTED 표준 반환 값을 반환할 수 있습니다.
반환 코드 | Description |
---|---|
|
메서드가 완료되었습니다. |
|
표시 이름에 구문 오류가 있습니다. pszDisplayName을 모니커로 부분적으로만 확인할 수 있으므로 구문 분석이 실패했습니다. 이 경우 *pchEaten 에는 모니커 접두사로 성공적으로 구문 분석된 문자 수가 있습니다. ppmkOut 매개 변수는 NULL이어야 합니다. |
|
표시 이름은 이 네임스페이스의 구성 요소를 식별하지 않습니다. |
|
하나 이상의 매개 변수가 유효하지 않습니다. |
설명
일반적으로 구문상 유효하고 개체를 나타내는 pszDisplayName 의 최대 접두사는 이 메서드에서 사용하고 모니커로 변환해야 합니다.
일반적으로 이 메서드는 MkParseDisplayName 또는 MkParseDisplayNameEx에서 호출됩니다. 구문 분석 작업의 초기 단계에서 이러한 함수는 "@ProgID" 또는 "ProgID" 표기법으로 식별된 클래스의 instance 직접 IParseDisplayName 인터페이스를 검색할 수 있습니다. 후속 구문 분석 단계에서는 중간 개체의 인터페이스를 쿼리할 수 있습니다.
MkParseDisplayName 및 MkParseDisplayNameEx의 기본 루프는 현재 보유하고 있는 모니커에서 IMoniker 인터페이스, 즉 IMoniker::P arseDisplayName에서 동등한 메서드를 호출하여 다음 모니커 조각을 찾습니다. IMoniker::P arseDisplayName에 대한 이 호출에서 MkParseDisplayName 또는 MkParseDisplayNameEx 함수는pmkToLeft 매개 변수에서 NULL을 전달합니다. 현재 보유하고 있는 모니커가 제네릭 복합인 경우 IMoniker::P arseDisplayName 에 대한 호출은 해당 복합체에 의해 마지막 조각으로 전달되어 pmkToLeft의 조각 왼쪽에 복합의 접두사를 전달합니다.
일부 모니커 클래스는 특정 종류의 개체만 지정하도록 설계되었기 때문에 내부적으로 이 구문 분석을 처리할 수 있습니다. 다른 사용자는 구문 분석 프로세스를 수행하기 위해 지정한 개체에 바인딩해야 합니다. 평소와 같이 이러한 개체는 IMoniker::P arseDisplayName 에서 해제하지 않아야 하지만 대신 IBindCtx::RegisterObjectBound 또는 IBindCtx::GetRunningObjectTable , IRunningObjectTable::Register 를 통해 바인딩 컨텍스트로 전송되어야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | oleidl.h |