GetLogicalDrives() for loop

后端 未结 2 1230
孤独总比滥情好
孤独总比滥情好 2020-12-22 09:08

I am new to the win32 api and need help trying to understand how the GetLogicalDrives() function works. I am trying to populate a cbs_dropdownlist with all the available dri

2条回答
  •  星月不相逢
    2020-12-22 09:41

    The function GetLogicalDrives returns a bitmask of the logical drives available. Here is how you would do it:

     DWORD drives = GetLogicalDrives();
     for (int i=0; i<26; i++)
     {
        if( !( drives & ( 1 << i ) ) )
        {
           TCHAR driveName[] = { TEXT('A') + i, TEXT(':'), TEXT('\\'), TEXT('\0') };
           SendMessage(hWndDropMenu, CB_ADDSTRING, 0, (LPARAM)driveName);
        }
     }
    

    The code checks whether the i-th bit in the bitmask is not set to 1 or true.

提交回复
热议问题