다음을 통해 공유


ApplicationFactory.HasVstoObject 메서드

지정된 네이티브 문서 개체에 대해 Microsoft.Office.Tools.Word.Document 호스트 항목이 만들어졌는지 여부를 나타내는 값을 반환합니다.

네임스페이스:  Microsoft.Office.Tools.Word
어셈블리:   Microsoft.Office.Tools.Word(Microsoft.Office.Tools.Word.dll)
  Microsoft.Office.Tools.Word.v4.0.Utilities(Microsoft.Office.Tools.Word.v4.0.Utilities.dll)

구문

‘선언
Function HasVstoObject ( _
    document As _Document _
) As Boolean
bool HasVstoObject(
    _Document document
)

매개 변수

반환 값

형식: System.Boolean
지정된 Microsoft.Office.Interop.Word.Document 개체에 대해 Microsoft.Office.Tools.Word.Document 호스트 항목이 만들어졌으면 true이고, 그렇지 않으면 false입니다.

설명

응용 프로그램 수준 추가 기능에서 이 메서드를 호출하여 Word 문서를 닫거나 저장하기 전에 유지하려는 관리되는 컨트롤의 존재 여부를 테스트할 수 있습니다. Word 문서에서 컨트롤을 유지하는 방법에 대한 샘플은 Word Add-In Dynamic Controls Sample을 참조하십시오.

참고

document 매개 변수는 Microsoft.Office.Interop.Word._Document 형식인데 이 형식은 Microsoft.Office.Interop.Word.Document의 부모 인터페이스입니다.따라서 이 메서드는 두 유형의 개체 Microsoft.Office.Interop.Word._DocumentMicrosoft.Office.Interop.Word.Document를 받아들일 수 있습니다.대개 Word 문서를 참조할 때는 Microsoft.Office.Interop.Word.Document를 사용합니다.

예제

다음 코드 예제에서는 현재 문서에 연결된 호스트 항목이 있는지 확인한 다음 호스트 항목이 있으면 이 항목을 가져옵니다. 관리되는 컨트롤이 문서에 있는 경우 이 예제에서는 문서를 저장할 때 관리되는 컨트롤이 유지되지 않음을 알리는 경고 메시지를 표시합니다. 이 코드 예제에서는 DocumentBeforeSave 이벤트의 이벤트 처리기를 사용하여 확인 작업을 수행합니다. 이 코드를 사용 하려면 실행 된 ThisAddIn 대상 Word 추가 기능에서 프로젝트에 클래스의 .NET Framework 4 또는 .NET Framework 4.5.

Private Sub Application_DocumentBeforeSave( _
    ByVal Doc As Microsoft.Office.Interop.Word.Document, _
    ByRef SaveAsUI As Boolean, _
    ByRef Cancel As Boolean) Handles Application.DocumentBeforeSave

    If Globals.Factory.HasVstoObject(Doc) = True Then
        Dim vstoDoc As Document = Globals.Factory.GetVstoObject(Doc)
        If vstoDoc.Controls.Count > 0 Then
            System.Windows.Forms.MessageBox.Show( _
                "The VSTO controls are not persisted when you save this document.", _
                "Controls Persistence", _
                System.Windows.Forms.MessageBoxButtons.OK, _
                System.Windows.Forms.MessageBoxIcon.Warning)
        End If
    End If
End Sub
void Application_DocumentBeforeSave(
    Microsoft.Office.Interop.Word.Document Doc, ref bool SaveAsUI, 
    ref bool Cancel)
{
    if (Globals.Factory.HasVstoObject(Doc) == true)
    {
        Document vstoDoc = Globals.Factory.GetVstoObject(Doc);
        if (vstoDoc.Controls.Count > 0)
        {
            System.Windows.Forms.MessageBox.Show(
                "The VSTO controls are not persisted when you save this document.",
                "Controls Persistence",
                System.Windows.Forms.MessageBoxButtons.OK,
                System.Windows.Forms.MessageBoxIcon.Warning);
        }
    }
}

.NET Framework 보안

  • 직접 실행 호출자의 경우 완전히 신뢰합니다. 이 멤버는 부분적으로 신뢰할 수 있는 코드에서 사용할 수 없습니다. 자세한 내용은 부분 신뢰 코드에서 라이브러리 사용을 참조하십시오.

참고 항목

참조

ApplicationFactory 인터페이스

Microsoft.Office.Tools.Word 네임스페이스

기타 리소스

런타임에 응용 프로그램 수준 추가 기능의 Word 문서 및 Excel 통합 문서 확장

문서 수준 사용자 지정 프로그래밍

Word Add-In Dynamic Controls Sample