2016-09-30 12 views
0

Office COMアドインをC++(ATL)で作成しました。現在、アドインで、現在のドキュメントがIRM(情報権利管理)が暗号化されているか保護されていないかを知る必要があります。または、現在適用されているIRMテンプレートを取得することもできます。 IRM暗号化は文書パスワードの設定と同じではありません。実際にはOffice 2010用ですが、新しいバージョンでは同じだと思います。 .NET COMアドインの答えがわかっている場合は、それも役に立ちます。COMアドインでOfficeドキュメントのIRM暗号化ステータスを取得する方法?

答えて

0

誰もがこれを知っているように見えないので、私が見つけた答えは次のとおりです。 Microsoft Permission interface

要約:許可インターフェイスを使用してください。プロパティ有効がこれに応答します。実際にはこのリンクには.NET Interopインターフェイスが表示されていますが、C++のATLからこれにアクセスする方法は似ています(したがって高速です)。

まず、OnConnection呼び出しからアプリケーションへの参照を格納する必要があります。次に、この(_app.ActiveDocument.Permission.Enabled)などの必要なプロパティを取得することができます:

CComPtr<IDispatch> pApp=_app; 
CComVariant vDoc; 
pApp.GetPropertyByName(L"ActiveDocument", &vDoc); 
CComPtr<IDispatch> pDoc=vDoc.pdispVal; 
CComVariant vPermission; 
pDoc.GetPropertyByName(L"Permission", &vPermission); 
CComPtr<IDispatch> pPermission=vPermission.pdispVal; 
CComVariant vEnabled; 
pPermission.GetPropertyByName(L"Enabled", &vEnabled); 
fEnabled=vEnabled.boolVal!=VARIANT_FALSE; 

エラー処理を簡潔にするためここでは省略しました。リターンコードを処理し、返されるタイプなどを確認してください。

これはWord用です。 Excelは代わりにActiveWorkbookを使用します。

関連する問題