Metode IXpsOMPageReference::CollectLinkTargets (xpsobjectmodel.h)
Mendapatkan antarmuka IXpsOMNameCollection yang berisi nama semua objek subtree dokumen yang properti IsHyperlinkTarget-nya diatur ke TRUE.
Sintaks
HRESULT CollectLinkTargets(
[out, retval] IXpsOMNameCollection **linkTargets
);
Parameter
[out, retval] linkTargets
Penunjuk ke antarmuka IXpsOMNameCollection yang berisi nama semua objek subtree dokumen yang properti IsHyperlinkTarget-nya diatur ke TRUE. Jika tidak ada objek seperti itu dalam dokumen, antarmuka IXpsOMNameCollection akan kosong.
Nilai kembali
Jika metode berhasil, metode akan mengembalikan S_OK; jika tidak, kode kesalahan HRESULT akan dikembalikan.
Menampilkan kode | Deskripsi |
---|---|
|
Metode berhasil. |
|
Tidak cukup memori untuk melakukan operasi ini. |
|
linkTargets adalah NULL. |
Keterangan
Jika halaman awalnya dimuat dari paket tetapi saat ini tidak dimuat dalam model objek, metode ini mengembalikan nilai yang ditentukan dalam markup PageContent.LinkTargets asli.
Jika dokumen tidak memiliki target tautan, koleksi nama yang dikembalikan di linkTargets akan kosong.
Untuk mendapatkan jumlah elemen dalam koleksi yang dikembalikan di linkTargets, panggil metode GetCount koleksi.
Metode ini mengembalikan pointer ke koleksi baru setiap kali dipanggil. Untuk mencegah kebocoran memori, pointer ke koleksi sebelumnya harus dilepaskan ketika tidak lagi diperlukan atau sebelum variabel pointer digunakan kembali untuk panggilan lain ke metode ini. Contoh kode berikut menunjukkan bagaimana hal ini dapat dilakukan dalam program.
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();
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 7, Windows Vista dengan SP2 dan Pembaruan Platform untuk Windows Vista [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2008 R2, Windows Server 2008 dengan SP2 dan Pembaruan Platform untuk Windows Server 2008 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | xpsobjectmodel.h |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk