Leaked source code of windows server 2003
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.
 
 
 
 
 
 

94 lines
2.4 KiB

//-------------------------------------------------------------------------
//
// Microsoft OLE
// Copyright (C) Microsoft Corporation, 1994 - 1995.
//
// File: dllinit.cxx
//
// Contents: OLE storage base tests
//
// Functions: dllinit
// RunTests
//
// History: 22-Jan-1998 SCousens Created.
//
//--------------------------------------------------------------------------
#include <dfheader.hxx>
#pragma hdrstop
#include "init.hxx"
extern int __cdecl main(int argc, char *argv[]);
#define STGBASE_INI "stgbase.ini"
HINSTANCE ghinstDll;
__declspec(dllexport) BOOL WINAPI DllMain(
HINSTANCE hinstDLL,
DWORD fdwReason,
LPVOID lpvReserved)
{
if(fdwReason == DLL_PROCESS_ATTACH)
{
ghinstDll = hinstDLL;
}
return TRUE;
}
// read all the commandlines in from a .ini file and call main with them.
extern "C" __declspec(dllexport) void RunTest (void)
{
HRESULT hr;
FILE* fp;
CHAR szLine[2048];
int count;
int argc;
char **argv;
DH_FUNCENTRY (&hr, DH_LVL_TRACE1, TEXT("RunTests"));
//Open the .ini file
if (NULL == (fp = fopen (STGBASE_INI, "r")))
{
DH_TRACE ((DH_LVL_ERROR,
TEXT("Error opening stgbase.ini Err=%ld"),
GetLastError ()));
MessageBox (NULL,
TEXT("Error Occured while opening stgbase.ini"),
TEXT("Sandbox Test"),
MB_ICONERROR | MB_ICONSTOP);
return;
}
// read a line
while (fgets (szLine, sizeof(szLine), fp) != NULL)
{
// safety check - if 1st char is alphanum assume ok.
if (*szLine >= 'A' && *szLine <= 'Z' ||
*szLine >= 'a' && *szLine <= 'z' ||
*szLine >= '1' && *szLine <= '0')
{
// convert to argc argv and call main
hr = CmdlineToArgs (szLine, &argc, &argv);
DH_HRCHECK (hr, TEXT("CmdlineToArgs"));
if (S_OK == hr)
{
hr = main (argc, argv);
DH_HRCHECK (hr, TEXT("Call to Stgbase::main"));
}
// cleanup for arguments strings
if (NULL != argv)
{
for (count=0; count<argc; count++)
delete argv[count];
delete [] argv;
}
}
}
fclose (fp);
}