Hi Paolo,

>       sUrl = "file:///home/paolo/Library1.uno.pkg"
>       
>       'This one DOES NOT WORK!
>       sUrl = _
>       "vnd.sun.star.pkg://" & Join(Split(sUrl, "/"), "%2F")
> & "/META-INF/manifest.xml"

 Using "vnd.sun.star.zip://" instead of "vnd.sun.star.pkg://" should do
the trick.

 "vnd.sun.star.pkg" URL addresses an OO.o package, not a plain zip file.
 OO.o package does not allow access to all content of the zip file it
actually resides in. The fact that an OO.o package is a zip file is
actually an implementation detail.

- Kai.

Paolo Mantovani wrote:
> Hi,
> 
> I'm trying to read the manifest.xml content into a zipped package using the 
> UniversalContentBroker service, but without any success.
> 
> When I execute the "open" command I get the following error:
> Type: com.sun.star.ucb.InteractiveAugmentedIOException
> Message: "Got no data stream!"
> What am I doing worng?
> (See my testing code below)
> 
> Thanks for any help
> Paolo M
> 
> 
> --------------------------------------------------
> REM  *****  BASIC  *****
> 
> Sub ReadManifestTest
> 
>       oSM = GetProcessServiceManager()
>       oUCB = oSM.createInstanceWithArguments( _
>               "com.sun.star.ucb.UniversalContentBroker", 
> Array("Local","Office"))
>               
>       sUrl = "file:///home/paolo/Library1.uno.pkg"
>       
>       'This one DOES NOT WORK!
>       sUrl = _
>       "vnd.sun.star.pkg://" & Join(Split(sUrl, "/"), "%2F") 
> & "/META-INF/manifest.xml"
> 
> '     sUrl = "file:///home/paolo/manifest.xml" '<-- This WORKS!
> 
>       oID = oUCB.createContentIdentifier(sUrl)
>       oProvider = oUCB.queryContentProvider(sUrl)
>       oContent = oProvider.queryContent(oID)
>       
>       oPropSet = UcbExecuteCommand(oContent, "getPropertySetInfo", Null)
>       oResult = UcbExecuteCommand(oContent, "getPropertyValues", 
> oPropSet.getProperties())
>       print oResult.getString(1) ' OK! "application/vnd.sun.star.pkg-stream
> 
>       Dim aArg As New com.sun.star.ucb.OpenCommandArgument2
>       aArg.Mode = com.sun.star.ucb.OpenMode.DOCUMENT
>       aArg.Priority = 32768
>       
>       oMySinc = CreateUnoService("com.sun.star.io.DataInputStream")
>       aArg.Sink = oMySinc
>       
>       aRes = UcbExecuteCommand(oContent, "open", aArg) '**** ERROR HERE
>       
>       oReader = 
> CreateUnoService("com.sun.star.packages.manifest.ManifestReader")
>       mManifestProps() = oReader.readManifestSequence(oMySinc)
> 
> End Sub
> 
> 
> Function UcbExecuteCommand(oContent As Object, _
>       sCommandName As String, aArgument As Variant) As Variant
> 
>       ' Assemble command to execute.
>       Dim aCommand As New com.sun.star.ucb.Command
>       aCommand.Name = sCommandName
>     aCommand.Handle = -1 ' not available
>     aCommand.Argument = aArgument
>  
>     ' Note: throws CommandAbortedException and Exception since
>     ' we pass null for the XCommandEnvironment parameter
>     UcbExecuteCommand = oContent.execute(aCommand, 0, Null)
>     
> End Function
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to