#include "headers.hxx" #include "..\dspecup.hpp" const wchar_t* RUNTIME_NAME = L"dspecup"; Popup popup(L"dspecup.lib", false); DWORD DEFAULT_LOGGING_OPTIONS = Log::OUTPUT_TO_FILE | Log::OUTPUT_FUNCCALLS | Log::OUTPUT_LOGS | Log::OUTPUT_ERRORS | Log::OUTPUT_HEADER; HINSTANCE hResourceModuleHandle = 0; long total; void stepIt(long arg, void *) { printf("\r" "\r%ld",total+=arg); } void totalSteps(long arg, void *) { total=0; printf("\n%ld\n",arg); } void PrintError(HRESULT hr, const String &message) { LOG_FUNCTION(PrintError); if(hr==E_FAIL) { wprintf(L"%s\n",message.c_str()); } else { if(message.empty()) { wprintf(L"%s\n",GetErrorMessage(hr).c_str()); } else { wprintf(L"%s\n",message.c_str()); wprintf(L"%s\n",GetErrorMessage(hr).c_str()); } } } int _cdecl main() { hResourceModuleHandle=::GetModuleHandle(NULL); HRESULT hr; hr = ::CoInitialize(0); ASSERT(SUCCEEDED(hr)); PWSTR errorMsg=NULL; do { hr=UpgradeDisplaySpecifiers(false,&errorMsg,NULL,stepIt,totalSteps); BREAK_ON_FAILED_HRESULT(hr); } while(0); CoUninitialize(); if(FAILED(hr)) { String error; if(errorMsg!=NULL) { error=errorMsg; CoTaskMemFree(errorMsg); } PrintError(hr,error); } return 0; }