' A simple WebBrowser control host. Imports System.Resources Imports System.Runtime.InteropServices Imports System.IO Public Class frmWordViewer Inherits System.Windows.Forms.Form Dim m_PrintFilename As String Property PrintFilename() As String Get Return m_PrintFilename End Get Set(ByVal Value As String) m_PrintFilename = Value End Set End Property Dim m_printdokumentid As String Property PrintDokumentid() As String Get Return m_printdokumentid End Get Set(ByVal Value As String) m_printdokumentid = Value End Set End Property 'edex banköaternd Dim m_showprintmessage As Boolean = True Property Show_Print_Message() As Boolean Get Return m_showprintmessage End Get Set(ByVal Value As Boolean) m_showprintmessage = Value End Set End Property Private rm As ResourceManager Private wasUrlTyped As Boolean = False #Region " Windows Form Designer generated code " Public Sub New() MyBase.New() 'This call is required by the Windows Form Designer. InitializeComponent() End Sub 'Form overrides dispose to clean up the component list. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub 'Required by the Windows Form Designer Private components As System.ComponentModel.IContainer 'NOTE: The following procedure is required by the Windows Form Designer 'It can be modified using the Windows Form Designer. 'Do not modify it using the code editor. Friend WithEvents webOCWrapper As WebOCHostCtrl Friend WithEvents MenuItem13 As System.Windows.Forms.MenuItem Friend Shadows WithEvents contextMenu As System.Windows.Forms.ContextMenu Friend WithEvents StatusBar1 As System.Windows.Forms.StatusBar Friend WithEvents addressBar As System.Windows.Forms.ComboBox Friend WithEvents addressBarLbl As System.Windows.Forms.Label Friend WithEvents ToolBar2 As System.Windows.Forms.ToolBar Friend WithEvents ImageList1 As System.Windows.Forms.ImageList Friend WithEvents ToolBarButton1 As System.Windows.Forms.ToolBarButton Friend WithEvents ToolBarButton2 As System.Windows.Forms.ToolBarButton Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container() Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(frmWordViewer)) Me.webOCWrapper = New EDOKAApp.WebOCHostCtrl() Me.contextMenu = New System.Windows.Forms.ContextMenu() Me.MenuItem13 = New System.Windows.Forms.MenuItem() Me.StatusBar1 = New System.Windows.Forms.StatusBar() Me.addressBar = New System.Windows.Forms.ComboBox() Me.addressBarLbl = New System.Windows.Forms.Label() Me.ToolBar2 = New System.Windows.Forms.ToolBar() Me.ToolBarButton1 = New System.Windows.Forms.ToolBarButton() Me.ToolBarButton2 = New System.Windows.Forms.ToolBarButton() Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components) Me.SuspendLayout() ' 'webOCWrapper ' Me.webOCWrapper.Anchor = (((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right) Me.webOCWrapper.BrowserContextMenu = False Me.webOCWrapper.ImeMode = System.Windows.Forms.ImeMode.NoControl Me.webOCWrapper.Location = New System.Drawing.Point(0, 24) Me.webOCWrapper.Name = "webOCWrapper" Me.webOCWrapper.Size = New System.Drawing.Size(864, 520) Me.webOCWrapper.TabIndex = 0 Me.webOCWrapper.TabStop = False ' 'contextMenu ' Me.contextMenu.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.MenuItem13}) ' 'MenuItem13 ' Me.MenuItem13.Index = 0 Me.MenuItem13.Text = "Print..." ' 'StatusBar1 ' Me.StatusBar1.Anchor = ((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right) Me.StatusBar1.Dock = System.Windows.Forms.DockStyle.None Me.StatusBar1.Location = New System.Drawing.Point(0, 549) Me.StatusBar1.Name = "StatusBar1" Me.StatusBar1.Size = New System.Drawing.Size(864, 24) Me.StatusBar1.TabIndex = 1 ' 'addressBar ' Me.addressBar.Location = New System.Drawing.Point(16, 56) Me.addressBar.Name = "addressBar" Me.addressBar.Size = New System.Drawing.Size(352, 21) Me.addressBar.Sorted = True Me.addressBar.TabIndex = 3 Me.addressBar.Visible = False ' 'addressBarLbl ' Me.addressBarLbl.Location = New System.Drawing.Point(16, 12) Me.addressBarLbl.Name = "addressBarLbl" Me.addressBarLbl.Size = New System.Drawing.Size(100, 16) Me.addressBarLbl.TabIndex = 8 Me.addressBarLbl.TextAlign = System.Drawing.ContentAlignment.MiddleRight ' 'ToolBar2 ' Me.ToolBar2.Buttons.AddRange(New System.Windows.Forms.ToolBarButton() {Me.ToolBarButton1, Me.ToolBarButton2}) Me.ToolBar2.DropDownArrows = True Me.ToolBar2.ImageList = Me.ImageList1 Me.ToolBar2.Name = "ToolBar2" Me.ToolBar2.ShowToolTips = True Me.ToolBar2.Size = New System.Drawing.Size(864, 25) Me.ToolBar2.TabIndex = 9 ' 'ToolBarButton1 ' Me.ToolBarButton1.ImageIndex = 0 ' 'ToolBarButton2 ' Me.ToolBarButton2.ImageIndex = 1 ' 'ImageList1 ' Me.ImageList1.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit Me.ImageList1.ImageSize = New System.Drawing.Size(16, 16) Me.ImageList1.ImageStream = CType(resources.GetObject("ImageList1.ImageStream"), System.Windows.Forms.ImageListStreamer) Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent ' 'frmWordViewer ' Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(864, 573) Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.ToolBar2, Me.addressBarLbl, Me.StatusBar1, Me.addressBar, Me.webOCWrapper}) Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) Me.Name = "frmWordViewer" Me.Text = "Office-Dokumentanzeige" Me.ResumeLayout(False) End Sub #End Region Private Sub exitMI_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) ' Clean up app. Close() End Sub Public Sub New(ByVal printable As Boolean) MyBase.New() 'This call is required by the Windows Form Designer. InitializeComponent() If printable = False Then Me.ToolBarButton2.Visible = False Else Me.ToolBarButton2.Visible = True End If Me.WindowState = FormWindowState.Maximized End Sub ' Update the available menu commands, particularly for cut/copy/paste. ' Also update the enabled state of the forward/back buttons. ' !TODO: Not the best place to do this. Find somewhere else. Private Sub MainForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load webOCWrapper.Navigate(addressBar.Text) End Sub Private Sub webOCWrapper_StatusTextChange(ByVal sender As Object, ByVal e As AxSHDocVw.DWebBrowserEvents2_StatusTextChangeEvent) Handles webOCWrapper.StatusTextChange StatusBar1.Text = e.text End Sub Private Sub findMI_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) webOCWrapper.Find() End Sub Private Sub inetOptionsMI_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) webOCWrapper.InternetOptions() End Sub Private Sub addressBar_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles addressBar.KeyDown If (e.KeyCode = Keys.Return) Then ' Validate URL. Try ' TODO: This won't accept URLs like "www.amazon.com", ' like IE will. ' Dim u As New Uri(addressBar.Text) Catch MessageBox.Show(rm.GetString("Error_InvalidUrlOrFile") + " : " + Err.GetException().Message, rm.GetString("Caption_InvalidUrlOrFile"), MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub End Try webOCWrapper.Navigate(addressBar.Text) ' Add to the list of available web sites - but wait ' for NavigateComplete2, so we get the fully-formatted, ' redirected URL. wasUrlTyped = True ' Cancel the event so the address bar never sees this. End If End Sub Private Sub backButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) webOCWrapper.GoBack() End Sub Private Sub forwardButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) webOCWrapper.GoForward() End Sub Private Sub homeButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) webOCWrapper.GoHome() End Sub Private Sub webOCWrapper_TopLevelNavigateComplete2(ByVal sender As Object, ByVal e As AxSHDocVw.DWebBrowserEvents2_NavigateComplete2Event) Handles webOCWrapper.TopLevelNavigateComplete2 addressBar.Text = Convert.ToString(e.uRL) If wasUrlTyped Then wasUrlTyped = False addressBar.Items.Add(e.uRL) End If End Sub Private Sub cutMI_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) webOCWrapper.Cut() End Sub Private Sub copyMI_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) webOCWrapper.Copy() End Sub Private Sub pasteMI_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) webOCWrapper.Paste() End Sub Private Sub printMI_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Try webOCWrapper.Print(doUI:=True) ' webOCWrapper.webBrowser.ExecWB(SHDocVw.OLECMDID.OLECMDID_PRINT2, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DODEFAULT) Catch End Try End Sub Public Sub Print_Doc() Try If print_word() = True Then Exit Sub Catch End Try Try webOCWrapper.Print(doUI:=True) Catch ex As Exception End Try End Sub Private Sub MenuItem13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem13.Click Try If print_word() = True Then Exit Sub webOCWrapper.Print(doUI:=True) Catch End Try End Sub Private Sub ToolBar2_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles ToolBar2.ButtonClick Dim i As Integer Select Case Me.ToolBar2.Buttons.IndexOf(e.Button) Case 0 'close button Me.Close() Case 1 'pint Try If print_word() = True Then Exit Sub Catch End Try Try webOCWrapper.Print(doUI:=True) Catch End Try Case Else End Select End Sub Private Sub frmWordViewer_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing Try Try 'docword = Nothing 'objword.Quit(False) 'objword = Nothing Catch End Try File.Delete(Me.addressBar.Text) Catch End Try End Sub ' Dim objword As Word.Application() ' Dim docword As Word.Document() Dim W As Integer Dim H As Integer Private Function print_word() As Boolean Dim objword As New Word.Application() Dim FileReader As New DocMgmt() Dim dokument As String Try dokument = DivFnkt.Get_Filename("View_" + Format(Now, "yyyyMMddHHmmss") + "_" + Me.PrintFilename, "") If FileReader.Get_From_DB(Me.PrintDokumentid, dokument) = False Then Return False End If Catch Finally FileReader = Nothing End Try If UCase(Microsoft.VisualBasic.Right(Me.PrintFilename, 4)) <> ".DOC" Then Return False End If Application.DoEvents() Try StartWord() Application.DoEvents() objword.Documents.Open(dokument) 'docword = objword.Documents.Open(dokument) 'Try ' docword.Activate() 'Catch 'End Try Try objword.Activate() Catch End Try Try objword.Run("Autoexec") Catch End Try Try objword.Activate() Catch End Try 'Try ' docword.Activate() 'Catch 'End Try System.Windows.Forms.Application.DoEvents() 'Dim cmbr As Microsoft.Office.Core.CommandBar 'RS:2006-08-22 Dim cmbr As Office.CommandBar For Each cmbr In objword.CommandBars 'Dim cbctl As Microsoft.Office.Core.CommandBarControl 'RS:2006-08-22 Dim cbctl As Office.CommandBarControl For Each cbctl In cmbr.Controls If cbctl.Id = 2521 Then ' MyMsg.show_standardmessage(250, MsgBoxStyle.Information) System.Windows.Forms.Application.DoEvents() objword.Selection.HomeKey(Unit:=Word.WdUnits.wdLine, Extend:=Word.WdMovementType.wdExtend) System.Windows.Forms.Application.DoEvents() cbctl.Execute() System.Windows.Forms.Application.DoEvents() objword.Visible = False System.Threading.Thread.Sleep(5500) If Me.Show_Print_Message = True Then MyMsg.show_standardmessage(250, MsgBoxStyle.Information) Return True End If Return True Exit Function End If Next Next Return True Catch ex As Exception Return False Finally objword.Quit(False) objword = Nothing End Try End Function Private Function StartWord() 'Try ' objword = GetObject(, "Word.application") ' 'objword = CreateObject("Word.application") 'Catch ' Try ' objword = CreateObject("Word.application") ' Catch ex As Exception ' MsgBox(ex.Message) ' End Try 'Finally ' 'objword.Visible = False ' 'objword.WindowState = Word.WdWindowState.wdWindowStateNormal ' objword.WindowState = Word.WdWindowState.wdWindowStateMinimize ' 'W = objword.Width ' 'H = objword.Height ' 'objword.Width = 10 ' 'objword.Height = 10 ' objword.Visible = True 'End Try 'Try ' objword.Run("Autoexec") 'Catch 'End Try End Function End Class