IXpsOMPageReference::CollectLinkTargets 方法 (xpsobjectmodel.h)
取得 IXpsOMNameCollection 介面,其中包含 IsHyperlinkTarget 屬性設定為 TRUE之所有文件子樹對象的名稱。
語法
HRESULT CollectLinkTargets(
[out, retval] IXpsOMNameCollection **linkTargets
);
參數
[out, retval] linkTargets
IXpsOMNameCollection 介面的指標,其中包含IsHyperlinkTarget屬性設定為TRUE之所有文件子樹物件的名稱。 如果文件中沒有這類物件, IXpsOMNameCollection 介面會是空的。
注意 每次呼叫這個方法時,都會傳回新的集合。
傳回值
如果方法成功,它會傳回S_OK;否則會傳回 HRESULT 錯誤碼。
傳回碼 | 描述 |
---|---|
|
此方法已成功。 |
|
記憶體不足,無法執行這項作業。 |
|
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 Vista 的 Windows 7、Windows Vista SP2 和平臺更新 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2008 R2、Windows Server 2008 SP2 和 Platform Update for Windows Server 2008 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | xpsobjectmodel.h |