/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ #include "launcher.hxx" #include #include #include #include #include int main( int argc, char* argv[]) { PPIB pib; APIRET rc; RESULTCODES result = {0}; char szFail[ _MAX_PATH]; HAB hab = WinInitialize( 0); HMQ hmq = WinCreateMsgQueue( hab, 0); ERRORID erridErrorCode = 0; erridErrorCode = WinGetLastError(hab); // Calculate application name CHAR szApplicationName[_MAX_PATH]; // get executable fullpath DosGetInfoBlocks(NULL, &pib); DosQueryModuleName(pib->pib_hmte, sizeof(szApplicationName), szApplicationName); // adjust libpath #if OSL_DEBUG_LEVEL > 0 CHAR szLibpath[_MAX_PATH*2]; rc = DosQueryExtLIBPATH( (PSZ)szLibpath, BEGIN_LIBPATH); fprintf( stderr, "1 BeginLibPath: %s\n", szLibpath); #endif char* basedir = strrchr( szApplicationName, '\\'); if (basedir) *basedir = 0; DosSetExtLIBPATH( (PCSZ)szApplicationName, BEGIN_LIBPATH); // make sure we load DLL from our path only, so multiple instances/versions // can be loaded. DosSetExtLIBPATH( (PCSZ)"T", LIBPATHSTRICT); #if OSL_DEBUG_LEVEL > 0 rc = DosQueryExtLIBPATH( (PSZ)szLibpath, BEGIN_LIBPATH); fprintf( stderr, "2 BeginLibPath: %s\n", szLibpath); #endif // adjust exe name strcat( szApplicationName, "\\" OFFICE_IMAGE_NAME ".bin"); // copy command line parameters int i, len; len = strlen(szApplicationName) + 1 + strlen( APPLICATION_SWITCH) + 1 + 1; for( i=1; i