Исходная функция
| Код | { СString strType, strValue, DisplayName; LPTSTR Buffer; int BufferSize = MAX_PATH + MAX_DEVICE_ID_LEN; ULONG BufferLen = BufferSize * sizeof(TCHAR);
Buffer = (strValue).GetBuffer(BufferSize); if (CR_SUCCESS == CM_Get_DevNode_Registry_Property_Ex(DevNode, CM_DRP_FRIENDLYNAME, NULL, Buffer, &BufferLen, 0, m_hMachine) ) { DisplayName = Buffer; } else { BufferLen = BufferSize * sizeof(TCHAR); if (CR_SUCCESS == CM_Get_DevNode_Registry_Property_Ex(DevNode, CM_DRP_DEVICEDESC, NULL, Buffer, &BufferLen, 0, m_hMachine) ) { DisplayName = Buffer; } else { DisplayName=("Unknown Device"); } } return DisplayName; }
|
Описание ф-ии в
| Код | DWORD CM_Get_DevNode_Registry_Property_Ex( IN DEVINST dnDevInst, IN ULONG ulProperty, OUT PULONG pulRegDataType, OPTIONAL OUT PVOID Buffer, OPTIONAL IN OUT PULONG pulLength, IN ULONG ulFlags, IN HMACHINE hMachine );
|
Я понимаю, что в Buffer возвращается некое значение и перед вызовом CM_Get_DevNode_Registry_Property_Ex нужно этому Buffer-у чё-нить зарезервировать? Что следует писать? Всего лишь подставлять strValue.data() вместо Buffer ? BCB ругается cannot convert 'const void *' to 'void*'
|