IXpsOMPageReference::CollectLinkTargets 메서드(xpsobjectmodel.h)
IsHyperlinkTarget 속성이 TRUE로 설정된 모든 문서 하위 트리 개체의 이름을 포함하는 IXpsOMNameCollection 인터페이스를 가져옵니다.
구문
HRESULT CollectLinkTargets(
[out, retval] IXpsOMNameCollection **linkTargets
);
매개 변수
[out, retval] linkTargets
IsHyperlinkTarget 속성이 TRUE로 설정된 모든 문서 하위 트리 개체의 이름을 포함하는 IXpsOMNameCollection 인터페이스에 대한 포인터입니다. 문서에 이러한 개체가 없으면 IXpsOMNameCollection 인터페이스가 비어 있습니다.
반환 값
메서드가 성공하면 S_OK 반환합니다. 그렇지 않으면 HRESULT 오류 코드를 반환합니다.
반환 코드 | Description |
---|---|
|
메서드가 성공했습니다. |
|
메모리가 부족하여 이 작업을 수행할 수 없습니다. |
|
linkTargets 는 NULL입니다. |
설명
페이지가 원래 패키지에서 로드되었지만 현재 개체 모델에 로드되지 않은 경우 이 메서드는 원래 PageContent.LinkTargets 태그에 지정된 값을 반환합니다.
문서에 링크 대상이 없으면 linkTargets 에 반환된 이름 컬렉션이 비어 있습니다.
linkTargets에서 반환되는 컬렉션의 요소 수를 얻으려면 컬렉션의 GetCount 메서드를 호출합니다.
이 메서드는 호출할 때마다 새 컬렉션에 대한 포인터를 반환합니다. 메모리 누수 방지를 위해 이전 컬렉션에 대한 포인터가 더 이상 필요하지 않거나 포인터 변수가 이 메서드에 대한 다른 호출에 다시 사용되기 전에 해제해야 합니다. 다음 코드 예제에서는 프로그램에서 이 작업을 수행할 수 있는 방법을 보여줍니다.
HRESULT hr = S_OK;
IXpsOMPage *page = NULL;
IXpsOMNameCollection *linkTargets = NULL;
UINT32 numTargets = 0;
UINT32 thisTarget = 0;
LPWSTR thisTargetName = NULL;
// pageRef contains the current page reference
// if the page hasn't been loaded yet, for example, if the XPS OM
// was loaded from an XPS document, CollectLinkTargets obtains the
// list of link targets from the <PageContent.LinkTargets> markup
hr = pageRef->CollectLinkTargets(&linkTargets);
// get the page content of this page reference
hr = pageRef->GetPage (&page);
// after the page object has been loaded and calling GetPage or
// by creating a page in the XPS OM, CollectLinkTargets will now check
// each of the page elements to return the list so this call to
// CollectLinkTargets might take longer to return than the previous
// call above if the XPS OM was created from a file
linkTargets->Release(); // release previous collection
hr = pageRef->CollectLinkTargets(&linkTargets);
// walk the list of link targets returned
hr = linkTargets->GetCount( &numTargets );
thisTarget = 0;
while (thisTarget < numTargets) {
hr = linkTargets->GetAt (thisTarget, &thisTargetName);
printf ("%s\n", thisTargetName);
// release the target string returned to prevent memory leaks
CoTaskMemFree (thisTargetName);
// get next target in list
thisTarget++;
}
// release page and the link target collection
page->Release();
linkTargets->Release();
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7, Windows Vista SP2 및 Windows Vista용 플랫폼 업데이트 [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2008 R2, Windows Server 2008 SP2 및 Windows Server 2008용 플랫폼 업데이트 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | xpsobjectmodel.h |