Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu konuda, bir XPS OM'deki sayfa referanslarına erişim sağlayan arabirimlerin nasıl kullanılacağı açıklanmaktadır.
| Arabirim adı | Mantıksal çocuk arabirimler | Açıklama |
|---|---|---|
|
IXpsOMPageReference |
IXpsOMPage |
Belge sayfasının içeriğini sanallaştırır. Sayfa başvurusu, sayfa hakkında temel bilgiler, bazı sayfa özellikleri ve sayfa içeriğine bağlantı içerir. Sayfa içeriğini oluşturan IXpsOMPage arabirimi , IXpsOMPageReference::GetPage yöntemi tarafından döndürülür. |
|
IXpsOMNameCollection |
Hiç kimse |
Hiperlink hedefleri olan sayfa öğelerinin listesini içerir. Liste , IXpsOMPageReference::CollectLinkTargets yöntemi tarafından döndürülür. |
|
IXpsOMPartResources |
Hiç kimse |
Sayfayla ilişkili parça tabanlı kaynakların listesini içerir. Bu liste IXpsOMPageReference::CollectPartResources yöntemi tarafından döndürülür. |
Kod Örnekleri
Aşağıdaki kod örnekleri, bir programdaki sayfa başvuru arabirimleriyle çalışmayı göstermektedir.
- Sayfa içeriğini alma
- Bu sayfadaki köprü hedeflerinin listesini alın
- Bu sayfayla ilişkili parça kaynaklarını alın
Sayfa içeriğini alma
Aşağıdaki kod örneği, sayfa içeriğini oluşturan IXpsOMPage arabirimine yönelik bir işaretçi alır. Sayfa XPS OM'ye yüklenmemişse, XPS OM IXpsOMObjectFactory::CreatePackageFromFile çağrısıyla başlatıldığında olduğu gibi, IXpsOMPageReference::GetPage çağrısı sayfayı XPS OM'ye yükler.
{
HRESULT hr = S_OK;
IXpsOMPage *page = NULL;
// pageRef contains the current page reference
// and is passed in as a parameter
// get the page content of this page reference
hr = pageRef->GetPage (&page);
Bu sayfadaki köprü hedeflerinin listesini alın
Aşağıdaki kod örneği, köprü hedefleri olan sayfa öğelerinin listesini içeren IXpsOMNameCollection arabirimine yönelik bir işaretçi alır. Sayfa XPS OM'ye yüklenmemişse, köprü hedefleri listesi PageContent.LinkTargets işaretlemesinden okunur. Sayfa yüklendiyse CollectLinkTargets sayfadaki her öğeyi denetler ve IsHyperlinkTarget özniteliği TRUE olan öğelerin listesini döndürür.
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();
Bu sayfayla ilişkili parça kaynaklarını alın
Aşağıdaki kod örneği, bu sayfa tarafından kullanılan farklı kaynakların listelerini alır.
HRESULT hr = S_OK;
IXpsOMPartResources *resources;
IXpsOMColorProfileResourceCollection *colorProfileResources;
IXpsOMFontResourceCollection *fontResources;
IXpsOMImageResourceCollection *imageResources;
IXpsOMRemoteDictionaryResourceCollection *dictionaryResources;
// pageRef contains the current page reference
hr = pageRef->CollectPartResources ( &resources );
// Get pointers to each type of resource
hr = resources->GetColorProfileResources( &colorProfileResources );
hr = resources->GetFontResources( &fontResources );
hr = resources->GetImageResources( &imageResources );
hr = resources->GetRemoteDictionaryResources( &dictionaryResources );