有効なドライブを調べてドライブ名がSAMPLEがあれば成功例

前回のだと一つのドライブにしかGetDriveTypeをやってなかったけど、今回は有効なドライブを調べてドライブ名がSAMPLEがあれば成功するという風にした。
参考URL
http://hp.vector.co.jp/authors/VA007799/tips/tips1.htm
バイナリ
http://dl.dropbox.com/u/13673436/GetDriveType.AllDrive.exe
MD5:9BA4EA1C8B90AD7F37954E799AFED017
ソース

#include <stdio.h>
#include <windows.h>
#include <tchar.h>
#include <locale.h>
int WINAPI WinMain(
		HINSTANCE hInstance ,
		HINSTANCE hPrevInstance ,
		LPSTR lpCmdLine ,
		int nCmdShow ) {
    int flag=1;
    DWORD drive=GetLogicalDrives();//利用可能なドライブを調べる
    const int INFOBUF_SIZE=256;
    TCHAR volumeName[INFOBUF_SIZE];
    TCHAR moji[20];
	int drivearry;

    for(drivearry=0;drivearry<25;drivearry++,flag<<=1)
    {
        if(drive&flag)
        {
            wsprintf(moji,_T("%c:\\"),'A'+drivearry);
            if(GetDriveType(moji) == DRIVE_CDROM)//CDROMなら判定する
			{
				 GetVolumeInformation(moji, volumeName, INFOBUF_SIZE, 0, 0, 0, NULL,NULL);  //  ボリューム名を取得
			     if(_tcscmp(volumeName,_T("SAMPLE"))==0)
					 { 
						MessageBox(NULL , TEXT("認証成功") ,
						TEXT("認証成功") ,
						MB_OK | MB_ICONINFORMATION);
						return 0;
					 }
            }
		}
    }
	MessageBox(NULL , TEXT("ボリュームネームが「SAMPLE」のCDを入れてください") ,
	TEXT("認証失敗") ,
	MB_OK | MB_ICONINFORMATION);
	return 0;
}