ENGLISH page is here.
GET DinopSearchBar
サイト内検索:
HOME
VC++ TIPS
ダウンロード
DinopExifReader
DinopSearchBar
DinopSearchBar mini
DinopTabbingBar
for Firefox
大阪湾の生き物
甲子園浜の自然
甲子園浜の干潟
甲子園浜の水中
甲子園浜の野鳥
近畿の山々
植物図鑑
箕面マップ
水中機材
カメラ
ランキング
望遠鏡の世界
顕微鏡の世界
Googleのすべて
GoogleマップAPI
ニュース
読んだ本
日記
変な料理の作り方
遺伝子操作
論文紹介
デイトレード
自動売買でFX
ネットで小遣い稼ぎ
Solaris
電子工作
その他
問い合わせ
VC++用コード集
大阪湾の生き物
水中用機材
since:2000/11/15
dinopcom@gmail.com
www.dinop.comは
だいのっぷ・どっと・こむ
と読んでください。







« COMを使う(超簡単例:VCで実行) | メイン | 2種類のCOMプログラミング("作る"と"使う") »

COMプログラミングをはじめよう




COMとは

 COMというのは「Component Object Model」の頭文字を取ったものだ。
 初めて「COM」を耳にしたときは「command.com」のような実行ファイルの拡張子のcomを思い 浮かべたが...拡張子とはまったく関係ない。

 COMというのはActiveXやOCXと同じものだ。
 深く解説すればするほど難解になるのであまり深く「何なんだろう?」と考えない方がいいだ ろう。



COMの例

 Windows上ではほとんどの機能がCOMとして作られている。
 例えば...いい例が思いつかないが、WindowsはCOMの塊のようなものだ。プログラミングを してみると分かりやすいかもしれない。例えば以下の関数はインターネットショートカット、つ まりお気に入りなどに入っているようなURLに対するショートカットファイルを作成する関数だ。

 ファイルを作成する関数にもかかわらずfopenやCreateFileのような通常のファイル作成関数 を利用していない。これはWindowsがCOMとして備えているショートカットファイルを作成するた めの機能を利用しているためだ。

bool	CreateInternetShortcut(LPCTSTR urlText, LPCTSTR linkPathName)
{
	HRESULT	hr;

	CComPtr	pURL;
	CComPtr				pPersistFile;

	::CoCreateInstance(CLSID_InternetShortcut, NULL, CLSCTX_INPROC_SERVER,IID_IUniformResourceLocator,(LPVOID*)&pURL);
	if(pURL == NULL)
		return	false;

	pURL->QueryInterface(IID_IPersistFile,(void**)&pPersistFile);
	if(pPersistFile == NULL)
		return	false;

	pURL->SetURL(urlText,0);

#ifdef  _UNICODE
	hr = pPersistFile->Save(linkPathName, TRUE);
#else
	wchar_t		wlinkPathName[MAX_PATH*2];
	::MultiByteToWideChar(CP_ACP,0,linkPathName,-1,wlinkPathName,MAX_PATH*2);
	hr = pPersistFile->Save(wlinkPathName,TRUE);
#endif

	return	SUCCEEDED(hr) ? true : false;
}










Copyright (c) 1999-2007 issei. All rights reserved. (運営者情報