Esempio n. 1
0
        public void OpenWordFile()
        {
            mWordApp.Activate();
            mWordApp.Visible = true;

            //mCurDoc.Close(ref oTrue, ref mMissing, ref mMissing);
            mCurDoc.ActiveWindow.Close(ref oTrue, ref mMissing);

            mWordApp.Application.Visible = true;
            mWordApp.Documents.Open(ref mSavePath, ref mMissing, ref mMissing, ref mMissing, ref mMissing, ref mMissing, ref mMissing, ref mMissing, ref mMissing, ref mMissing, ref mMissing, ref mMissing, ref mMissing, ref mMissing, ref mMissing, ref mMissing);
        }
Esempio n. 2
0
        /// <summary>
        /// Loads a document into the control
        /// </summary>
        /// <param name="t_filename">path to the file (every type word can handle)</param>
        public Word.Document LoadDocument(string t_filename)
        {
            deactivateevents = true;
            filename         = t_filename;

            if (wd == null)
            {
                wd = new Word.ApplicationClass();
            }
            try
            {
                wd.CommandBars.AdaptiveMenus             = false;
                wd.DocumentBeforeClose                  += new Word.ApplicationEvents4_DocumentBeforeCloseEventHandler(OnClose);
                wd.ApplicationEvents4_Event_NewDocument += new Word.ApplicationEvents4_NewDocumentEventHandler(OnNewDoc);
                wd.DocumentOpen += new Word.ApplicationEvents4_DocumentOpenEventHandler(OnOpenDoc);
                wd.ApplicationEvents4_Event_Quit += new Word.ApplicationEvents4_QuitEventHandler(OnQuit);
            }
            catch { }

            if (document != null)
            {
                try
                {
                    object dummy = null;
                    wd.Documents.Close(ref dummy, ref dummy, ref dummy);
                }
                catch { }
            }

            if (wordWnd == 0)
            {
                wordWnd = FindWindow("Opusapp", null);
            }
            if (wordWnd != 0)
            {
                SetParent(wordWnd, this.Handle.ToInt32());

                object fileName    = filename;
                object newTemplate = false;
                object docType     = 0;
                object readOnly    = true;
                object isVisible   = true;
                object missing     = System.Reflection.Missing.Value;

                try
                {
                    if (wd == null)
                    {
                        throw new WordInstanceException();
                    }

                    if (wd.Documents == null)
                    {
                        throw new DocumentInstanceException();
                    }

                    if (wd != null && wd.Documents != null)
                    {
                        document = wd.Documents.Add(ref fileName, ref newTemplate, ref docType, ref isVisible);
                    }

                    if (document == null)
                    {
                        throw new ValidDocumentException();
                    }
                }
                catch
                {
                }

                try
                {
                    wd.ActiveWindow.DisplayRightRuler        = false;
                    wd.ActiveWindow.DisplayScreenTips        = false;
                    wd.ActiveWindow.DisplayVerticalRuler     = false;
                    wd.ActiveWindow.DisplayRightRuler        = false;
                    wd.ActiveWindow.ActivePane.DisplayRulers = false;
                    wd.ActiveWindow.ActivePane.View.Type     = Word.WdViewType.wdPrintView;
                    wd.CommandBars.ActiveMenuBar.Enabled     = false;
                    //wd.ActiveWindow.ActivePane.View.Type = Word.WdViewType.wdPrintView;//wdWebView; // .wdNormalView;
                }
                catch
                {
                }


                /// Code Added
                /// Disable the specific buttons of the command bar
                /// By default, we disable/hide the menu bar
                /// The New/Open buttons of the command bar are disabled
                /// Other things can be added as required (and supported ..:) )
                /// Lots of commented code in here, if somebody needs to disable specific menu or sub-menu items.
                ///
                int counter = wd.ActiveWindow.Application.CommandBars.Count;
                for (int i = 1; i <= counter; i++)
                {
                    try
                    {
                        String nm = wd.ActiveWindow.Application.CommandBars[i].Name;
                        if (nm == "Standard")
                        {
                            //nm=i.ToString()+" "+nm;
                            //MessageBox.Show(nm);
                            int count_control = wd.ActiveWindow.Application.CommandBars[i].Controls.Count;
                            for (int j = 1; j <= 2; j++)
                            {
                                //MessageBox.Show(wd.ActiveWindow.Application.CommandBars[i].Controls[j].ToString());
                                wd.ActiveWindow.Application.CommandBars[i].Controls[j].Enabled = false;
                            }
                        }

                        if (nm == "Menu Bar")
                        {
                            //To disable the menubar, use the following (1) line
                            wd.ActiveWindow.Application.CommandBars[i].Enabled = false;

                            /// If you want to have specific menu or sub-menu items, write the code here.
                            /// Samples commented below

                            //							MessageBox.Show(nm);
                            //int count_control=wd.ActiveWindow.Application.CommandBars[i].Controls.Count;
                            //MessageBox.Show(count_control.ToString());

                            /*
                             * for(int j=1;j<=count_control;j++)
                             * {
                             *  /// The following can be used to disable specific menuitems in the menubar
                             *  /// wd.ActiveWindow.Application.CommandBars[i].Controls[j].Enabled=false;
                             *
                             *  //MessageBox.Show(wd.ActiveWindow.Application.CommandBars[i].Controls[j].ToString());
                             *  //MessageBox.Show(wd.ActiveWindow.Application.CommandBars[i].Controls[j].Caption);
                             *  //MessageBox.Show(wd.ActiveWindow.Application.CommandBars[i].Controls[j].accChildCount.ToString());
                             *
                             *
                             *  ///The following can be used to disable some or all the sub-menuitems in the menubar
                             *
                             *
                             *  ////Office.CommandBarPopup c;
                             *  ////c = (Office.CommandBarPopup)wd.ActiveWindow.Application.CommandBars[i].Controls[j];
                             *  ////
                             *  ////for(int k=1;k<=c.Controls.Count;k++)
                             *  ////{
                             *  ////	//MessageBox.Show(k.ToString()+" "+c.Controls[k].Caption + " -- " + c.Controls[k].DescriptionText + " -- " );
                             *  ////	try
                             *  ////	{
                             *  ////		c.Controls[k].Enabled=false;
                             *  ////		c.Controls["Close Window"].Enabled=false;
                             *  ////	}
                             *  ////	catch
                             *  ////	{
                             *  ////
                             *  ////	}
                             *  ////}
                             *
                             *
                             *
                             *      //wd.ActiveWindow.Application.CommandBars[i].Controls[j].Control	 Controls[0].Enabled=false;
                             *  }
                             */
                        }

                        nm = "";
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.ToString());
                    }
                }
                // Show the word-document
                try
                {
                    wd.Visible = true;
                    wd.Activate();

                    SetWindowPos(wordWnd, this.Handle.ToInt32(), 0, 0, this.Bounds.Width, this.Bounds.Height, SWP_NOZORDER | SWP_NOMOVE | SWP_DRAWFRAME | SWP_NOSIZE);

                    //Call onresize--I dont want to write the same lines twice
                    OnResize();
                }
                catch
                {
                    MessageBox.Show("Error: do not load the document into the control until the parent window is shown!");
                }

                /// We want to remove the system menu also. The title bar is not visible, but we want to avoid accidental minimize, maximize, etc ..by disabling the system menu(Alt+Space)
                try
                {
                    int hMenu = GetSystemMenu(wordWnd, false);
                    if (hMenu > 0)
                    {
                        int menuItemCount = GetMenuItemCount(hMenu);
                        RemoveMenu(hMenu, menuItemCount - 1, MF_REMOVE | MF_BYPOSITION);
                        RemoveMenu(hMenu, menuItemCount - 2, MF_REMOVE | MF_BYPOSITION);
                        RemoveMenu(hMenu, menuItemCount - 3, MF_REMOVE | MF_BYPOSITION);
                        RemoveMenu(hMenu, menuItemCount - 4, MF_REMOVE | MF_BYPOSITION);
                        RemoveMenu(hMenu, menuItemCount - 5, MF_REMOVE | MF_BYPOSITION);
                        RemoveMenu(hMenu, menuItemCount - 6, MF_REMOVE | MF_BYPOSITION);
                        RemoveMenu(hMenu, menuItemCount - 7, MF_REMOVE | MF_BYPOSITION);
                        RemoveMenu(hMenu, menuItemCount - 8, MF_REMOVE | MF_BYPOSITION);
                        DrawMenuBar(wordWnd);
                    }
                }
                catch { };
                this.Parent.Focus();
            }

            deactivateevents = false;
            return(document);
        }