用VC怎么弹出U盘?

来源:百度知道 编辑:UC知道 时间:2024/06/19 19:56:33
用VC怎么弹出U盘?

bool CUPWS::TCUP(char szDriveName)
{
DWORD accessMode = 0, shareMode = 0;
HANDLE hDevice;
ULONG returned = 0,bResult = 0;
DWORD dwError;
shareMode = FILE_SHARE_READ | FILE_SHARE_WRITE; // default
accessMode = GENERIC_WRITE | GENERIC_READ; // default

if (szDriveName == 0)
{
return FALSE;
}
CString vol_string = "\\\\.\\G:";
vol_string.SetAt(4, szDriveName);

hDevice = CreateFile(vol_string, accessMode, shareMode, NULL, OPEN_EXISTING, 0, NULL);

if (hDevice == INVALID_HANDLE_VALUE)
{
CString debugInfo;
dwError = GetLastError();
debugInfo.Format("error = %d ", dwError);
TRACE("IOCTL_STORAGE_EJECT_MEDIA errorcode = %d /n", dwError);
return FALSE;
}

bResult = DeviceIoControl(hDevice , IOCTL_STORAGE_EJECT_MEDIA , NULL , 0 , NULL , 0 ,&returned , NULL);//弹出U盘的具体命令。
if