_DTE.ActiveDocument Property

Definition

Gets the active document.

[System.Runtime.InteropServices.DispId(221)]
[get: System.Runtime.InteropServices.DispId(221)]
public EnvDTE.Document ActiveDocument { get; }
Property Value

A Document object.

Examples

Important

For readability, the following code example does not contain security checking or complete error handling. Do not use the following code in a production environment.

Sub ActiveDocumentExample()  
  Dim objTextDoc As TextDocument  
  Dim objEP As EditPoint  

  'Create a new text document.  
  Call DTE.ItemOperations.NewFile("General\Text File")  
  'Get a handle to the new document.  
  Set objTextDoc = DTE.ActiveDocument.Object("TextDocument")  
  Set objEP = objTextDoc.StartPoint.CreateEditPoint  
  'Create an EditPoint and add some text.  
  objEP.Insert "A test sentence."  
End Sub  

Sub DocumentExample()  
  Dim doc As Document  
  Dim desc As String  

  Set doc = DTE.ActiveDocument  
  desc = "You are editing a "  
  If (doc.ReadOnly) Then  
    desc = desc & "read-only"  
  Else  
    desc = desc & "writable"  
  End If  
  desc = desc & " document called " & doc.Name & " located at " & doc.Path  
  MsgBox desc  
End Sub  

Important

For readability, the following code example does not contain security checking or complete error handling. Do not use the following code in a production environment.

STDMETHODIMP CConnect::ActiveDocumentExample(DTE2 * pApplication)  
{  
CComPtr<ItemOperations> pItemOperations;  
CComPtr<Document> pDocument;  
CComPtr<Window> pDocWindow;  
CComPtr<TextPoint> pTextPoint;  
CComPtr<EditPoint> pEditPoint;  
CComPtr<TextDocument> pTextDocument;  
CComBSTR bstrFileName = "MyTextDocument";  
CComBSTR bstrFileItem = "General\\Text File";  
CComBSTR bstrFileText = "This is a line of text.";  
CComBSTR bstrModelKind = "TextDocument";  
CComPtr<IDispatch> pToolObject;  
HRESULT hr = S_FALSE;  

while (hr != S_OK && pApplication != nullptr)   
{  
// create a document - it will be the new active document  
pApplication->get_ItemOperations(&pItemOperations);  
if (pItemOperations != nullptr) pItemOperations->NewFile(bstrFileItem,bstrFileName,_bstr_t(vsViewKindTextView),&pDocWindow); else break;  

//get the current active document - use TextDocument interface so we can edit it  
pApplication->get_ActiveDocument(&pDocument);  
if (pDocument != nullptr) pDocument->Object(bstrModelKind, &pToolObject); else break;  
if (pToolObject != nullptr) pToolObject->QueryInterface(__uuidof(TextDocument), (LPVOID*)&pTextDocument); else break;  
if (pTextDocument != nullptr) pTextDocument->CreateEditPoint(pTextPoint,&pEditPoint); else break;  
if (pEditPoint != nullptr) pEditPoint->Insert(bstrFileText); else break;  

MessageBox(NULL, "Done, Active Document is new file. ", "Active Document Example", MB_OK);    
hr = S_OK;  
return hr;  
}  
return hr;  
}  
STDMETHODIMP CConnect::DocumentExample(DTE2 * pApplication)  
{  
CComPtr<Document> pDocument;  
CComBSTR bstrDesc;  
CComBSTR bstrDocName;  
CComBSTR bstrDocPath;  
VARIANT_BOOL bReadOnly = false;   
HRESULT hr = S_FALSE;  

while (hr != S_OK && pApplication != nullptr)  
{  
pApplication->get_ActiveDocument(&pDocument);  
bstrDesc.Append("You are editing a ");  
if (pDocument != nullptr)   
{  
pDocument->get_ReadOnly(&bReadOnly);  
pDocument->get_Name(&bstrDocName);  
pDocument->get_Path(&bstrDocPath);  
}  
else break;  
if (bReadOnly == true)  
bstrDesc.Append("read-only");  
else  
bstrDesc.Append("writable");  

bstrDesc.Append(" document called ");  
bstrDesc.Append(bstrDocName);  
bstrDesc.Append(" located at ");  
bstrDesc.Append(bstrDocPath);  

_bstr_t bstrIntermed = bstrDesc;  
MessageBox(NULL,(LPCSTR) bstrIntermed,"Document Example",MB_OK);   
hr = S_OK;  
return hr;  
}  
return hr;  
}  

Remarks

An active document is one that has the focus. To make another document active, set the focus on its window.

You can set the caption only on Tool windows. If you attempt to set the caption on other window types, such as Document windows, you get the error, "Unspecified error."

The active document property throws an exception when the project Properties window is opened in Microsoft Visual Studio 2005.

Applies to