Пример #1
0
        public int CreateEditorInstance(
            uint grfCreateDoc,
            string pszMkDocument,
            string pszPhysicalView,
            IVsHierarchy pvHier,
            uint itemid,
            System.IntPtr punkDocDataExisting,
            out System.IntPtr ppunkDocView,
            out System.IntPtr ppunkDocData,
            out string pbstrEditorCaption,
            out Guid pguidCmdUI,
            out int pgrfCDW)
        {
            Trace.WriteLine(string.Format(CultureInfo.CurrentCulture, "Entering {0} CreateEditorInstace()", this.ToString()));

            // Initialize to null
            ppunkDocView = IntPtr.Zero;
            ppunkDocData = IntPtr.Zero;
            pguidCmdUI = GuidList.guidCogaenEditExtensionEditorFactory;
            pgrfCDW = 0;
            pbstrEditorCaption = null;

            // Validate inputs
            if ((grfCreateDoc & (VSConstants.CEF_OPENFILE | VSConstants.CEF_SILENT)) == 0)
            {
                return VSConstants.E_INVALIDARG;
            }
            //if (punkDocDataExisting != IntPtr.Zero)
            //{
            //    return VSConstants.VS_E_INCOMPATIBLEDOCDATA;
            //}

            // Create the Document (editor)
            EditorPane NewEditor = new EditorPane(editorPackage);
            IObjectBuilder objBuilder = null;
            CogaenEditFile file = null;

            if (pvHier is CogaenEditProject)
            {
                CogaenEditProject project = pvHier as CogaenEditProject;
                file = project.NodeFromItemId(itemid) as CogaenEditFile;
            }

            if (punkDocDataExisting != IntPtr.Zero)
            {
                object dat = Marshal.GetObjectForIUnknown(punkDocDataExisting);
                if (dat is IObjectBuilder)
                {
                    objBuilder = dat as IObjectBuilder;
                }
            }
            else
            {
                if (file != null)
                {
                    file.Load(pszMkDocument,0,0);
                    objBuilder = file.ObjectBuilder;
                }
            }

            NewEditor.OpenPreloadedDocument(objBuilder, pszMkDocument, file);
            //objBuilder.updateUi();

            ppunkDocView = Marshal.GetIUnknownForObject(NewEditor);
            ppunkDocData = Marshal.GetIUnknownForObject(NewEditor);
            pbstrEditorCaption = "";
            return VSConstants.S_OK;
        }
Пример #2
0
 public EditorProperties(EditorPane Editor)
 {
     editor = Editor;
 }