ページ

2009年6月25日木曜日

[IE][C#][COM] IE のセキュリティゾーンをプログラムから操作する

Adding and removing websites to/from security zones programmatically (C#) より。
なんとなく気になったので覚え書き。

IE のセキュリティゾーンへ / から WebSite を追加したり削除したりするのはどうやんの?という話。
IInternetSecurityManager を使えばできるよ、と。
そのために UrlMon.idl を midl でコンパイル。
できたタイプライブラリ UrlMon.tlb を tlbimp でマネージドへ。
これで CLSID_InternetSecurityManager とか必要なものが手に入った。
後は、いつもどおり CLSID_InternetSecurityManager を CreateInstance してごにょごにょすれば OK。

というわけで、C# とありますが内容は全部 COM ですw

あと重要な注意。
記事で紹介されているコードでは Marshal.ReleaseComObject してません。
try . . . finally で括って、使い終わったら確実に Marshal.ReleaseComObject するようにしておいた方がいいです。
(7/2 追記 Dennis "D.C." Dietrich さんからコメントをもらい、やみくもに Marshal.ReleaseComObject すればいいというものでもないとわかったのでこの一文は取り消します。詳しくは 「[.NET][COM] Marshal.ReleaseComObject の危険性について」 をご覧ください)


0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。