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は
だいのっぷ・どっと・こむ
と読んでください。







« CD-ROMのイジェクト(Win9x) | メイン | CD-ROMのイジェクト(WinNT/2000) »

CD-ROMのイジェクト(OS自動判別)




解説

 メディアのイジェクトはWindows 9x系とWindows NT系で方法が異なり、また、その方法自体 が結構複雑で面倒。そのためここでは簡単にメディアを取り出せるようにOSを判別するクラス を作成した。

 ここで示したソースコードはOSの自動判別部分のみしか含んでいない。実際のメディア取り 出し処理は基底クラスであるCDnpMediaEjectNtとCDnpMediaEject9xに実装している。これら のクラスについては「CD-ROMのイジェクト(Win9x) 」 と「CD-ROMのイジェクト(WinNT/2000/XP)」に 書かれている。



使用例


	CDnpMediaEject	cEject;

	cEject.EjectVolume(_T('F'));



ソースコード


//
//	メディアのイジェクト(OS自動判別)
//
//	Windows NT/2000/XP系は以下のURLを参照
//		http://support.microsoft.com/kb/q165721/
//
//	Windows95/98/Me系は以下のURLを参照
//		http://support.microsoft.com/kb/q168180/
//
class	CDnpMediaEject : public CDnpMediaEjectNt, public CDnpMediaEject9x
{
public:

	//
	//	メディアのイジェクト
	//
	bool	EjectVolume(TCHAR cDriveLetter,DWORD dwTimeouts=5000)
	{
		BOOL			ret;
		OSVERSIONINFO	sInfo;

		ZeroMemory(&sInfo,sizeof(OSVERSIONINFO));
		sInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);

		ret = ::GetVersionEx(&sInfo);
		if(ret == FALSE)
			return	false;

		//Windows 9x系
		if(sInfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
			return	CDnpMediaEject9x::EjectVolume(cDriveLetter);

		//Windows NT系
		if(sInfo.dwPlatformId == VER_PLATFORM_WIN32_NT)
			return	CDnpMediaEjectNt::EjectVolume(cDriveLetter,dwTimeouts);

		return	false;
	}
};








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