Example #1
0
        private void EhFileMonikerChanged(IMoniker fileMoniker)
        {
            if (null == _document)
            {
                return;
            }

            // see Brockschmidt, Inside Ole 2nd ed., p.998
            // TODO we must pimp up this function

            RunningObjectTableHelper.ROTUnregister(ref _documentMonikerRotCookie);
            _documentMoniker = null;

            if (null != fileMoniker)
            {
                Ole32Func.CreateItemMoniker("!", DataObjectHelper.NormalStringToMonikerNameString(_document.Name), out var itemMoniker);

                if (null != itemMoniker)
                {
                    fileMoniker.ComposeWith(itemMoniker, false, out var compositeMoniker);
                    if (null != compositeMoniker)
                    {
                        _documentMoniker = compositeMoniker;
                        RunningObjectTableHelper.ROTRegisterAsRunning(_documentMoniker, this, ref _documentMonikerRotCookie, typeof(IOleObject));
                    }
                }
            }

            SendAdvise_Renamed();
        }
Example #2
0
        private IMoniker CreateNewDocumentMoniker()
        {
            // create the moniker on the fly
            IMoniker documentMoniker = null;

            var fileMoniker = _comManager.FileComObject.FileMoniker;

            if (null != fileMoniker)
            {
                Ole32Func.CreateItemMoniker("!", DataObjectHelper.NormalStringToMonikerNameString(_graphDocumentName), out var itemMoniker);
                if (null != itemMoniker)
                {
                    fileMoniker.ComposeWith(itemMoniker, false, out documentMoniker);
                }
            }
            return(documentMoniker);
        }