Bagikan melalui


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.

Catatan Setiap kali metode ini dipanggil, metode ini mengembalikan koleksi baru.
 

Nilai kembali

Jika metode berhasil, metode akan mengembalikan S_OK; jika tidak, kode kesalahan HRESULT akan dikembalikan.

Menampilkan kode Deskripsi
S_OK
Metode berhasil.
E_OUTOFMEMORY
Tidak cukup memori untuk melakukan operasi ini.
E_POINTER
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

IXpsOMNameCollection

IXpsOMPageReference

Spesifikasi Kertas XML