- apertura file pdf come risorsa di progetto

This commit is contained in:
Emmanuele Sassi
2023-02-17 13:05:24 +01:00
parent 58febf7d4b
commit 9233d3f6f2
6 changed files with 71 additions and 18 deletions
+7 -3
View File
@@ -1,4 +1,8 @@
Public Class HelpWndV
Imports System.Diagnostics.Eventing
Imports System.IO
Imports System.Reflection
Public Class HelpWndV
Private WithEvents m_HelpWndVM As HelpWndVM
@@ -11,8 +15,8 @@
m_HelpWndVM = HelpWndVM
'm_HelpWndVM.SetWebBrowser(WebBrowser)
Browser.ResourceRequestHandlerFactory = New ResourceHandlerFactory
'Dim x = New System.Reflection.Assembly.GetManifestResourceStream
Browser.Address = "index.html"
Browser.Address = "Icarus.pdf#toolbar=0"
End Sub
'Private Sub CloseWindow(bDialogResult As Boolean) Handles m_HelpWndVM.m_CloseWindow
+52 -5
View File
@@ -21,10 +21,25 @@ Public Class ResourceHandler
Public Property ErrorCode As CefErrorCode?
Private disposedValue As Boolean
Public Sub New(ByVal Optional mimeType As String = DefaultMimeType, ByVal Optional stream As Stream = Nothing, ByVal Optional autoDisposeStream As Boolean = False, ByVal Optional charset As String = Nothing)
If String.IsNullOrEmpty(mimeType) Then
Throw New ArgumentNullException("mimeType", "Please provide a valid mimeType")
End If
StatusCode = 200
StatusText = "OK"
mimeType = "application/pdf"
Headers = New NameValueCollection()
stream = stream
autoDisposeStream = autoDisposeStream
charset = charset
Headers.Add("Access-Control-Allow-Origin", "*")
End Sub
Public Sub GetResponseHeaders(response As IResponse, ByRef responseLength As Long, ByRef redirectUrl As String) Implements IResourceHandler.GetResponseHeaders
redirectUrl = Nothing
responseLength = -1
response.MimeType = MimeType
'response.MimeType = MimeType
response.MimeType = "application/pdf"
response.StatusCode = StatusCode
response.StatusText = StatusText
response.Headers = Headers
@@ -48,23 +63,55 @@ Public Class ResourceHandler
End Sub
Public Sub Cancel() Implements IResourceHandler.Cancel
Throw New NotImplementedException()
Return
End Sub
Public Function Open(request As IRequest, ByRef handleRequest As Boolean, callback As ICallback) As Boolean Implements IResourceHandler.Open
Dim assembly = Reflection.Assembly.GetExecutingAssembly()
Dim resourceName = "Icarus.Icarus.pdf"
Stream = assembly.GetManifestResourceStream(resourceName)
callback.Continue()
Return True
End Function
Public Function ProcessRequest(request As IRequest, callback As ICallback) As Boolean Implements IResourceHandler.ProcessRequest
Throw New NotImplementedException()
Return True
End Function
Public Function Skip(bytesToSkip As Long, ByRef bytesSkipped As Long, callback As IResourceSkipCallback) As Boolean Implements IResourceHandler.Skip
Throw New NotImplementedException()
callback.Dispose()
If Stream Is Nothing OrElse Not Stream.CanSeek Then
bytesSkipped = -2
Return False
End If
bytesSkipped = bytesToSkip
Stream.Seek(bytesToSkip, SeekOrigin.Current)
Return True
End Function
Public Function Read(dataOut As Stream, ByRef bytesRead As Integer, callback As IResourceReadCallback) As Boolean Implements IResourceHandler.Read
Throw New NotImplementedException()
bytesRead = 0
callback.Dispose()
If Stream Is Nothing Then
Return False
End If
If tempBuffer Is Nothing OrElse tempBuffer.Length < dataOut.Length Then
tempBuffer = New Byte(dataOut.Length - 1) {}
End If
bytesRead = Stream.Read(tempBuffer, 0, CInt(dataOut.Length))
If bytesRead = 0 Then
Return False
End If
dataOut.Write(tempBuffer, 0, bytesRead)
Return bytesRead > 0
End Function
Public Function ReadResponse(dataOut As Stream, ByRef bytesRead As Integer, callback As ICallback) As Boolean Implements IResourceHandler.ReadResponse
+10 -10
View File
@@ -28,11 +28,11 @@ Public Class ResourceRequestHandler
End Function
Public Function OnResourceResponse(chromiumWebBrowser As IWebBrowser, browser As IBrowser, frame As IFrame, request As IRequest, response As IResponse) As Boolean Implements IResourceRequestHandler.OnResourceResponse
Throw New NotImplementedException()
Return True
End Function
Public Function GetResourceResponseFilter(chromiumWebBrowser As IWebBrowser, browser As IBrowser, frame As IFrame, request As IRequest, response As IResponse) As IResponseFilter Implements IResourceRequestHandler.GetResourceResponseFilter
Throw New NotImplementedException()
Return Nothing
End Function
Public Function OnProtocolExecution(chromiumWebBrowser As IWebBrowser, browser As IBrowser, frame As IFrame, request As IRequest) As Boolean Implements IResourceRequestHandler.OnProtocolExecution
@@ -40,15 +40,15 @@ Public Class ResourceRequestHandler
End Function
Protected Overridable Sub Dispose(disposing As Boolean)
If Not disposedValue Then
If disposing Then
' TODO: dispose managed state (managed objects)
End If
'If Not disposedValue Then
' If disposing Then
' ' TODO: dispose managed state (managed objects)
' End If
' TODO: free unmanaged resources (unmanaged objects) and override finalizer
' TODO: set large fields to null
disposedValue = True
End If
' ' TODO: free unmanaged resources (unmanaged objects) and override finalizer
' ' TODO: set large fields to null
' disposedValue = True
'End If
End Sub
' ' TODO: override finalizer only if 'Dispose(disposing As Boolean)' has code to free unmanaged resources
BIN
View File
Binary file not shown.
+2
View File
@@ -562,11 +562,13 @@
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<EmbeddedResource Include="Icarus.pdf" />
<EmbeddedResource Include="My Project\Resources.resx">
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
<CustomToolNamespace>My.Resources</CustomToolNamespace>
</EmbeddedResource>
<Resource Include="Resources\Manual\Icarus.pdf" />
<None Include="app.manifest" />
<None Include="My Project\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
Binary file not shown.