//+------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1992 - 1993. // // File: letests.cpp // // Contents: upper layer tests // // Classes: // // Functions: LETest1 // // History: dd-mmm-yy Author Comment // 06-Feb-94 alexgo author // //-------------------------------------------------------------------------- #include "oletest.h" #include "letest.h" // Test1 information SLETestInfo letiInsertObjectTest1 = { "simpdnd", WM_TEST1 }; SLETestInfo letiInplaceTest1 = { "simpcntr", WM_TEST1 }; SLETestInfo letiOle1Test1 = { "simpdnd", WM_TEST2 }; // Test2 information SLETestInfo letiInsertObjectTest2 = { "spdnd16", WM_TEST1 }; SLETestInfo letiOle1Test2 = { "spdnd16", WM_TEST2 }; //+------------------------------------------------------------------------- // // Function: LETestCallback // // Synopsis: generic callback function for running L&E tests. // // Effects: // // Arguments: pvArg -- the test message to send to the app // // Requires: // // Returns: void // // Signals: // // Modifies: // // Algorithm: Create the process and wait for it to finish. The exit // status is then returned. // // History: dd-mmm-yy Author Comment // 06-Feb-94 alexgo author // Notes: // //-------------------------------------------------------------------------- void LETestCallback( void *pvArg ) { //the test app (simpdnd) should have just sent us a WM_TESTREG message. assert(vApp.m_message == WM_TESTREG); vApp.m_rgTesthwnd[0] = (HWND)vApp.m_wparam; //now tell the app to start the requested test OutputString( "Tell LETest to Start\r\n"); PostMessage(vApp.m_rgTesthwnd[0], (UINT)pvArg, 0, 0); return; } //+------------------------------------------------------------------------- // // Function: LETest1 // // Synopsis: Runs the app specified in the argument // // Effects: // // Arguments: pvArg -- unused // // Requires: // // Returns: void // // Signals: // // Modifies: // // Algorithm: Create the process and wait for it to finish. The exit // status is then returned. // // History: dd-mmm-yy Author Comment // 06-Feb-94 alexgo author // Notes: // //-------------------------------------------------------------------------- void LETest1( void *pvArg ) { SLETestInfo *pleti = (SLETestInfo *) pvArg; #ifdef WIN32 PROCESS_INFORMATION procinfo; static STARTUPINFO startinfo; //to make it all zero char szBuf[128]; //initialize the command line sprintf(szBuf, "%s%s -driver %lu", vApp.m_pszDebuggerOption, pleti->pszPgm, vApp.m_hwndMain); startinfo.cb = sizeof(startinfo); if( CreateProcess(NULL, szBuf, NULL, NULL, NULL, NULL, NULL, NULL, &startinfo, &procinfo) ) { //simpdnd launched, stuff a callback function in the stack vApp.m_TaskStack.Push(LETestCallback, (void *)((ULONG)pleti->dwMsgId)); } else { vApp.m_wparam = TEST_FAILURE; vApp.m_lparam = (LPARAM)GetLastError(); vApp.m_message = WM_TESTEND; HandleTestEnd(); } return; #else // 16bit Version!! vApp.m_wparam = TEST_SUCCESS; vApp.m_lparam = 0; vApp.m_message = WM_TESTEND; HandleTestEnd(); return; #endif // WIN32 }