[CONNECT C++ U10] Using MicroStation API calls to replace mdlSystem_newDesignFile()

In porting code from Select to CONNECT< I have a tool that uses mdlSystem_newDesignFile(). I'm attempting to replace the use of that function with ISessionMgr calls. I can only get a new .dgn file to open in "read-only" mode. I know there are a few situations that result in a file being opened "read only" but they don't apply (at least I don't think they do).

// 
		BeFileName				outFileName;
		if ( SUCCESS != mdlFile_find(&outFileName, fullFileName.c_str(), NULL, NULL))
		{ 
			wprintf(L"Error locating file\n");
		}
		else
		{
			// open the file
			StatusInt status;
			DgnDocumentMonikerPtr  dgnMon = DgnDocumentMoniker::CreateFromFileName(fullFileName.c_str());
			if (!dgnMon.IsValid())
			{ 
				wprintf(L"!dgnMon.IsValid()\n");
				return true;
			}

			DgnDocumentPtr dgnDoc = DgnDocument::CreateFromMoniker(status, *dgnMon, DEFDGNFILE_ID, DgnDocument::FetchMode::Write, DgnDocument::FetchOptions::Default);
			DgnFilePtr			dgnFile = NULL;
			if (dgnDoc.IsValid())
			{
				wprintf(L"dgnDoc.IsValid()\n");
					DgnFileStatus		dgnStatus;
					DgnFilePtr			newFile = ISessionMgr::GetManager().FindDesignFile(dgnStatus, fullFileName.c_str(), L"Default", GRAPHICSFILE_UStn, true);
					if (dgnStatus == SUCCESS)
					{
						DgnFileP pFile = ISessionMgr::GetManager().GetMasterDgnFile();
						ISessionMgr::GetManager().SwitchToNewFile(*dgnDoc, L"Default", GRAPHICSFILE_UStn, true, false, false, false);
					}
					return true;
			}
		}

The current (active) file and the one I'm trying to open are not the same file.

Bruce