Поясните код

 
0
 
C++
ava
бУРов | 25.03.2013, 16:00
Поясните следующий код (пронумерованные строки). Такой код использую, чтобы прочитать серийный номер жесткого диска.
Не пойму, зачем строка "22" с "+"-ом.
nhw += szr;

Если написать
nhw = szr;

то получаю серийный номер, ряд пробелов, ряд символов.

Строку "23" добавил, чтобы убрать конец строки - там пробеды и ненужные мне символы.

Строка "25"
CString nhw;

тоже не понял зачем, но без нее получаю строку
"\\.\CDROM0" 


int CutDlg::GetSN(CString &nhw)
{
...

    IWbemClassObject *pclsObj;
    ULONG uReturn = 0;
    int i = 1;
    while (pEnumerator)
    {
        HRESULT hr = pEnumerator->Next(WBEM_INFINITE, 1,&pclsObj, &uReturn);
        if(0 == uReturn) break;
        VARIANT vtProp, vtP2, vtP3, vtP4;
        // Get the value of the Serial Number property
        hr = pclsObj->Get(L"SerialNumber", 0, &vtProp, 0, 0);
        hr = pclsObj->Get(L"Description", 0, &vtP2, 0, 0);
        hr = pclsObj->Get(L"Manufacturer", 0, &vtP3, 0, 0);
        hr = pclsObj->Get(L"Tag", 0, &vtP4, 0, 0);
        LPCTSTR szr; 
        {
            CW2T temp(vtProp.bstrVal);
            szr = temp.operator LPTSTR();
            nhw += szr;
            nhw = nhw.SpanExcluding(" ");
        }
        CString nhw;
        if(V_VT(&vtP2) == VT_BSTR)
        {
...



        i++;
        VariantClear(&vtProp);
    }//while (pEnumerator)

    // Cleanup
    // ========

    pSvc->Release();
    pLoc->Release();
    pEnumerator->Release();
    pclsObj->Release();
    CoUninitialize();

    return 0; // Program successfully completed.
}

Comments (0)

Comments are not added

Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit