PackageStore.AddPackage(Uri, Package) Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Adds a Package to the store.
public:
static void AddPackage(Uri ^ uri, System::IO::Packaging::Package ^ package);
public static void AddPackage (Uri uri, System.IO.Packaging.Package package);
static member AddPackage : Uri * System.IO.Packaging.Package -> unit
Public Shared Sub AddPackage (uri As Uri, package As Package)
Parameters
- uri
- Uri
The key URI of the package
to compare in a PackWebRequest.
- package
- Package
The package to add to the store.
Exceptions
package
is null
.
packageUri
is an invalid package URI.
A package with the specified packageUri
is already in the store.
Examples
The following example shows how to use the AddPackage method.
if (rmi.CryptoProvider.CanDecrypt == true)
ShowStatus(" Decryption granted.");
else
ShowStatus(" CANNOT DECRYPT!");
ShowStatus(" Getting the Package from\n" +
" the EncryptedPackage.");
_xpsPackage = ePackage.GetPackage();
if (_xpsPackage == null)
{
MessageBox.Show("Unable to get Package.");
return false;
}
// Set a PackageStore Uri reference for the encrypted stream.
// ("sdk://packLocation" is a pseudo URI used by
// PackUriHelper.Create to define the parserContext.BaseURI
// that XamlReader uses to access the encrypted data stream.)
Uri packageUri = new Uri(@"sdk://packLocation", UriKind.Absolute);
// Add the URI package
PackageStore.AddPackage(packageUri, _xpsPackage);
// Determine the starting part for the package.
PackagePart startingPart = GetPackageStartingPart(_xpsPackage);
// Set the DocViewer.Document property.
ShowStatus(" Opening in DocumentViewer.");
ParserContext parserContext = new ParserContext();
parserContext.BaseUri = PackUriHelper.Create(
packageUri, startingPart.Uri);
parserContext.XamlTypeMapper = XamlTypeMapper.DefaultMapper;
DocViewer.Document = XamlReader.Load(
startingPart.GetStream(), parserContext)
as IDocumentPaginatorSource;
// Enable document menu controls.
menuFileClose.IsEnabled = true;
menuFilePrint.IsEnabled = true;
menuViewIncreaseZoom.IsEnabled = true;
menuViewDecreaseZoom.IsEnabled = true;
// Give the DocumentViewer focus.
DocViewer.Focus();
If rmi.CryptoProvider.CanDecrypt = True Then
ShowStatus(" Decryption granted.")
Else
ShowStatus(" CANNOT DECRYPT!")
End If
ShowStatus(" Getting the Package from" & vbLf & " the EncryptedPackage.")
_xpsPackage = ePackage.GetPackage()
If _xpsPackage Is Nothing Then
MessageBox.Show("Unable to get Package.")
Return False
End If
' Set a PackageStore Uri reference for the encrypted stream.
' ("sdk://packLocation" is a pseudo URI used by
' PackUriHelper.Create to define the parserContext.BaseURI
' that XamlReader uses to access the encrypted data stream.)
Dim packageUri As New Uri("sdk://packLocation", UriKind.Absolute)
' Add the URI package
PackageStore.AddPackage(packageUri, _xpsPackage)
' Determine the starting part for the package.
Dim startingPart As PackagePart = GetPackageStartingPart(_xpsPackage)
' Set the DocViewer.Document property.
ShowStatus(" Opening in DocumentViewer.")
Dim parserContext As New ParserContext()
parserContext.BaseUri = PackUriHelper.Create(packageUri, startingPart.Uri)
parserContext.XamlTypeMapper = XamlTypeMapper.DefaultMapper
DocViewerProperty.Document = TryCast(XamlReader.Load(startingPart.GetStream(), parserContext), IDocumentPaginatorSource)
' Enable document menu controls.
menuFileClose.IsEnabled = True
menuFilePrint.IsEnabled = True
menuViewIncreaseZoom.IsEnabled = True
menuViewDecreaseZoom.IsEnabled = True
' Give the DocumentViewer focus.
DocViewerProperty.Focus()
Remarks
packageUri
defines the package's key URI that is compared when you call PackWebRequest.
If the packageUri
matches the Uri for a PackagePart in a PackWebRequest call, the package defined in the PackageStore is used to access the requested part.
If the packageUri
does not match the Uri for a PackagePart in a PackWebRequest call, the package with the specified URI is opened to access the requested part.
Security Note This method demands EnvironmentPermission for all custom Package (non-ZipPackage) types.