diff --git a/Icarus/HelpWnd/HelpWndV.xaml.vb b/Icarus/HelpWnd/HelpWndV.xaml.vb
index 1fb972d..16612bb 100644
--- a/Icarus/HelpWnd/HelpWndV.xaml.vb
+++ b/Icarus/HelpWnd/HelpWndV.xaml.vb
@@ -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
diff --git a/Icarus/HelpWnd/ResourceHandler.vb b/Icarus/HelpWnd/ResourceHandler.vb
index 7da318d..9cbb64d 100644
--- a/Icarus/HelpWnd/ResourceHandler.vb
+++ b/Icarus/HelpWnd/ResourceHandler.vb
@@ -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
diff --git a/Icarus/HelpWnd/ResourceRequestHandler.vb b/Icarus/HelpWnd/ResourceRequestHandler.vb
index a30ee41..66356c3 100644
--- a/Icarus/HelpWnd/ResourceRequestHandler.vb
+++ b/Icarus/HelpWnd/ResourceRequestHandler.vb
@@ -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
diff --git a/Icarus/Icarus.pdf b/Icarus/Icarus.pdf
new file mode 100644
index 0000000..b5b6b3c
Binary files /dev/null and b/Icarus/Icarus.pdf differ
diff --git a/Icarus/Icarus.vbproj b/Icarus/Icarus.vbproj
index a9dacdd..9b71d7f 100644
--- a/Icarus/Icarus.vbproj
+++ b/Icarus/Icarus.vbproj
@@ -562,11 +562,13 @@
Settings.settings
True
+
VbMyResourcesResXFileCodeGenerator
Resources.Designer.vb
My.Resources
+
SettingsSingleFileGenerator
diff --git a/Icarus/Resources/Manual/Icarus.pdf b/Icarus/Resources/Manual/Icarus.pdf
new file mode 100644
index 0000000..b5b6b3c
Binary files /dev/null and b/Icarus/Resources/Manual/Icarus.pdf differ