Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Det här avsnittet beskriver hur du använder de gränssnitt som ger åtkomst till sidreferenser i en XPS OM.
| Gränssnittsnamn | Logiska barngränssnitt | Beskrivning |
|---|---|---|
|
IXpsOMPageReference |
IXpsOMPage |
Virtualiserar innehållet på en dokumentsida. En sidreferens innehåller grundläggande information om sidan, vissa sidegenskaper och en länk till sidinnehållet. Det IXpsOMPage--gränssnitt som består av sidinnehåll returneras av metoden IXpsOMPageReference::GetPage. |
|
IXpsOMNameCollection |
Ingen |
Innehåller en lista över sidobjekt som är hyperlänkmål. Listan returneras av metoden IXpsOMPageReference::CollectLinkTargets. |
|
IXpsOMPartResources |
Ingen |
Innehåller en lista över de delbaserade resurser som är associerade med sidan. Den här listan returneras av metoden IXpsOMPageReference::CollectPartResources. |
Kodexempel
Följande kodexempel illustrerar hur du arbetar med sidreferensgränssnitten i ett program.
- Hämta sidinnehållet
- Hämta listan över hyperlänkmål på den här sidan
- Hämta de delresurser som är associerade med den här sidan
Hämta sidinnehållet
Följande kodexempel hämtar en pekare till IXpsOMPage- gränssnitt som innehåller sidinnehållet. Om sidan inte har lästs in i XPS OM, vilket händer när XPS OM initieras genom att anropa IXpsOMObjectFactory::CreatePackageFromFile, anropar IXpsOMPageReference::GetPage läser in sidan i XPS OM.
{
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);
Hämta listan över hyperlänkmål på den här sidan
Följande kodexempel hämtar en pekare till IXpsOMNameCollection- gränssnitt som innehåller listan över sidobjekt som är hyperlänkmål. Om sidan inte har lästs in i XPS OM läses listan över hyperlänkmål från PageContent.LinkTargets markup-taggen. Om sidan har lästs in kontrollerar CollectLinkTargets varje element på sidan och returnerar en lista över element vars IsHyperlinkTarget- attribut är TRUE-.
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();
Hämta de delresurser som är associerade med den här sidan
Följande kodexempel hämtar listorna över de olika resurser som används av den här sidan.
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 );