社本@元ネオニート Blog

社本@元ネオニート (元々ワック) のいたずら書き (for Programmers)

AILight Banner
AILight Blog

プロフィール

社本@元ネオニート Blog
働いたら負けかなと思っていたのですが。。とうとう働き始めました。アメリカのシアトル・エリアにある企業向けのバックアップソフトを開発している会社です。日本人は私だけ。なんとか。。やっていけてるようです。

目次

Blog 利用状況

記事分類

過去の記事

タグ

管理者権限でCOMオブジェクトを生成 - Windows Vista

管理者権限でCOMオブジェクトを生成する方法です。

Windows Vistaでは、制限付きのユーザー アカウント (LUA) で
普段の作業を行う(ようにできる)ことが求められていますので、
こういった関数を適切に使わないといけないですね。。
#Windows XPで動作させたら、やっぱりエラーがでました。。

---
typedef struct tagBIND_OPTS3 : tagBIND_OPTS2
{
 HWND hwnd;
} BIND_OPTS3, * LPBIND_OPTS3;

static HRESULT CoCreateInstanceAsAdmin(HWND hwnd, REFCLSID rclsid, REFIID riid, void** ppv)
{
 HRESULT hr = S_OK;

 WCHAR wszCLSID[50];
 ::StringFromGUID2(rclsid, wszCLSID, sizeof(wszCLSID)/sizeof(wszCLSID[0]));

 WCHAR wszMonikerName[300];
 hr = ::StringCchPrintfW(wszMonikerName, sizeof(wszMonikerName) / sizeof(wszMonikerName[0]), L"Elevation:Administrator!new:%s", wszCLSID);
 if (FAILED(hr))
 {
  return hr;
 }

 BIND_OPTS3 bo;
 ::ZeroMemory(&bo, sizeof(bo));
 bo.cbStruct = sizeof(bo);
 bo.hwnd = hwnd;
 bo.dwClassContext = CLSCTX_LOCAL_SERVER;

 return ::CoGetObject(wszMonikerName, &bo, riid, ppv);
}
---

ドキュメントには、表示名や権限の昇格ができるかどうかといったことを表す
レジストリエントリの説明もあります。


■The COM Elevation Moniker - MSDN
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/com/html/1595ebb8-65af-4609-b3e7-a21209e64391.asp

投稿日時 : 2006年3月15日 23:28


コメントを追加

#  re: 管理者権限でCOMオブジェクトを生成 - Windows Vista 2006年3月18日 2:46 Lime

へぇ。やっぱりそういう制約はあるんですね。
Vista環境はまだまだDebug出来ていません。

Crypt関係もきつくなってそうですね。

ありがたく、COM情報、活用させていただきます。
まさに今、これが原因で動作がおかしくなっている箇所が何箇所かあるのです。。。

いつもいつもありがたく拝見させていただいてます。

#  re: 管理者権限でCOMオブジェクトを生成 - Windows Vista 2006年3月20日 6:33 社本@ワック

Limeさん、お久しぶりです。

この辺のトピック、派手じゃないのであまり気にされている方あ少ない思いますが。。
でも、実際の動作にはかなインパクトを与えそうですよね。

何か情報がありましたら、教えて下さい~。

#  re: 管理者権限でCOMオブジェクトを生成 - Windows Vista 2006年3月20日 17:59 社本@ワック

ちゃんと読んでないけど、とりあえずメモ。。

■Using Application Compatibility Tools for Marking Legacy Applications with Elevated Run Levels on Microsoft Windows Vista - TechNet
http://www.microsoft.com/technet/windowsvista/deploy/appcompat/acshims.mspx

#  links for 2006-07-31 2006年8月1日 1:18 Blog E

管理者権限でCOMオブジェクトを生成 - Windows Vista 日文資料關於COM 在Vista 的elevate (tags: vista...
タイトル
名前
URL
コメント