HRESULT WINAPI DirectInput8WProxy::CreateDevice(REFGUID rguid, LPDIRECTINPUTDEVICE8W* device, LPUNKNOWN outer) { hadesmem::detail::LastErrorPreserver last_error_preserver; HADESMEM_DETAIL_TRACE_FORMAT_A( "Args: [%p] [%p] [%p] [%p].", this, &rguid, device, outer); last_error_preserver.Revert(); auto const ret = direct_input_->CreateDevice(rguid, device, outer); last_error_preserver.Update(); HADESMEM_DETAIL_TRACE_FORMAT_A("Ret: [%ld].", ret); if (SUCCEEDED(ret)) { auto const device_type = DeviceGuidToEnum(direct_input_, rguid); HADESMEM_DETAIL_TRACE_FORMAT_A("Got new IDirectInputDevice8W. Type: [%s].", DeviceTypeToString(device_type).c_str()); *device = new DirectInputDevice8WProxy(*device, device_type); } else { HADESMEM_DETAIL_TRACE_A("Failed."); } return ret; }
CAEDeviceInfo::operator std::string() { std::stringstream ss; ss << "m_deviceName : " << m_deviceName << '\n'; ss << "m_displayName : " << m_displayName << '\n'; ss << "m_displayNameExtra: " << m_displayNameExtra << '\n'; ss << "m_deviceType : " << DeviceTypeToString(m_deviceType) + '\n'; ss << "m_channels : " << (std::string)m_channels << '\n'; ss << "m_sampleRates : "; for (AESampleRateList::iterator itt = m_sampleRates.begin(); itt != m_sampleRates.end(); ++itt) { if (itt != m_sampleRates.begin()) ss << ','; ss << *itt; } ss << '\n'; ss << "m_dataFormats : "; for (AEDataFormatList::iterator itt = m_dataFormats.begin(); itt != m_dataFormats.end(); ++itt) { if (itt != m_dataFormats.begin()) ss << ','; ss << CAEUtil::DataFormatToStr(*itt); } ss << '\n'; return ss.str(); }