Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

86 lines
1.4 KiB

#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;
}