1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 // MARKER(update_precomp.py): autogen include statement, do not remove 25 #include "precompiled_extensions.hxx" 26 #include <string.h> 27 28 #include <usr/reflserv.hxx> // for EXTERN_SERVICE_CALLTYPE 29 30 #include <usr/factoryhlp.hxx> 31 #include "testfactreg.hxx" 32 33 34 using namespace vos; 35 using namespace usr; 36 37 #ifdef __cplusplus 38 extern "C" 39 { 40 #endif 41 42 BOOL EXTERN_SERVICE_CALLTYPE exService_writeRegEntry( 43 const UNO_INTERFACE(XRegistryKey)* xUnoKey) 44 45 { 46 XRegistryKeyRef xKey; 47 uno2smart(xKey, *xUnoKey); 48 49 UString str = UString( L"/" ) + OPipeTest_getImplementationName() + UString( L"/UNO/SERVICES" ); 50 XRegistryKeyRef xNewKey = xKey->createKey( str ); 51 xNewKey->createKey( OPipeTest_getServiceName() ); 52 53 str = UString( L"/" ) + ODataStreamTest_getImplementationName(1) + UString( L"/UNO/SERVICES" ); 54 xNewKey = xKey->createKey( str ); 55 xNewKey->createKey( ODataStreamTest_getServiceName(1) ); 56 57 str = UString( L"/" ) + ODataStreamTest_getImplementationName(2) + UString( L"/UNO/SERVICES" ); 58 xNewKey = xKey->createKey( str ); 59 xNewKey->createKey( ODataStreamTest_getServiceName(2) ); 60 61 str = UString( L"/" ) + OObjectStreamTest_getImplementationName(1) + UString( L"/UNO/SERVICES" ); 62 xNewKey = xKey->createKey( str ); 63 xNewKey->createKey( OObjectStreamTest_getServiceName(1) ); 64 65 str = UString( L"/" ) + OObjectStreamTest_getImplementationName(2) + UString( L"/UNO/SERVICES" ); 66 xNewKey = xKey->createKey( str ); 67 xNewKey->createKey( OObjectStreamTest_getServiceName(2) ); 68 69 str = UString( L"/" ) + OMarkableOutputStreamTest_getImplementationName() + UString( L"/UNO/SERVICES" ); 70 xNewKey = xKey->createKey( str ); 71 xNewKey->createKey( OMarkableOutputStreamTest_getServiceName() ); 72 73 str = UString( L"/" ) + OMarkableInputStreamTest_getImplementationName() + UString( L"/UNO/SERVICES" ); 74 xNewKey = xKey->createKey( str ); 75 xNewKey->createKey( OMarkableInputStreamTest_getServiceName() ); 76 77 str = UString( L"/" ) + OMyPersistObject_getImplementationName() + UString( L"/UNO/SERVICES" ); 78 xNewKey = xKey->createKey( str ); 79 xNewKey->createKey( OMyPersistObject_getServiceName() ); 80 81 return TRUE; 82 } 83 84 85 UNO_INTERFACE(XInterface) EXTERN_SERVICE_CALLTYPE exService_getFactory 86 ( 87 const wchar_t* implementationName, 88 const UNO_INTERFACE(XMultiServiceFactory)* xUnoFact, 89 const UNO_INTERFACE(XRegistryKey)* 90 ) 91 { 92 UNO_INTERFACE(XInterface) xUnoRet = {0, 0}; 93 94 XInterfaceRef xRet; 95 XMultiServiceFactoryRef xSMgr; 96 UString aImplementationName(implementationName); 97 98 uno2smart(xSMgr, *xUnoFact); 99 100 if (aImplementationName == OPipeTest_getImplementationName() ) 101 { 102 xRet = createSingleFactory( xSMgr, implementationName, 103 OPipeTest_CreateInstance, 104 OPipeTest_getSupportedServiceNames() ); 105 } 106 else if( aImplementationName == ODataStreamTest_getImplementationName(1) ) { 107 xRet = createSingleFactory( xSMgr , implementationName, 108 ODataStreamTest_CreateInstance, 109 ODataStreamTest_getSupportedServiceNames(1) ); 110 } 111 else if( aImplementationName == ODataStreamTest_getImplementationName(2) ) { 112 xRet = createSingleFactory( xSMgr , implementationName, 113 ODataStreamTest_CreateInstance, 114 ODataStreamTest_getSupportedServiceNames(2) ); 115 } 116 else if( aImplementationName == OObjectStreamTest_getImplementationName(1) ) { 117 xRet = createSingleFactory( xSMgr , implementationName, 118 OObjectStreamTest_CreateInstance, 119 OObjectStreamTest_getSupportedServiceNames(1) ); 120 } 121 else if( aImplementationName == OObjectStreamTest_getImplementationName(2) ) { 122 xRet = createSingleFactory( xSMgr , implementationName, 123 OObjectStreamTest_CreateInstance, 124 OObjectStreamTest_getSupportedServiceNames(2) ); 125 } 126 else if( aImplementationName == OMarkableOutputStreamTest_getImplementationName() ) { 127 xRet = createSingleFactory( xSMgr , implementationName, 128 OMarkableOutputStreamTest_CreateInstance, 129 OMarkableOutputStreamTest_getSupportedServiceNames() ); 130 } 131 else if( aImplementationName == OMarkableInputStreamTest_getImplementationName() ) { 132 xRet = createSingleFactory( xSMgr , implementationName, 133 OMarkableInputStreamTest_CreateInstance, 134 OMarkableInputStreamTest_getSupportedServiceNames() ); 135 } 136 else if( aImplementationName == OMyPersistObject_getImplementationName() ) { 137 xRet = createSingleFactory( xSMgr , implementationName, 138 OMyPersistObject_CreateInstance, 139 OMyPersistObject_getSupportedServiceNames() ); 140 } 141 if (xRet.is()) 142 { 143 smart2uno(xRet, xUnoRet); 144 } 145 146 return xUnoRet; 147 } 148 149 #ifdef __cplusplus 150 } 151 #endif 152 153 Sequence<BYTE> createSeq( char * p ) 154 { 155 Sequence<BYTE> seq( strlen( p )+1 ); 156 strcpy( (char * ) seq.getArray() , p ); 157 return seq; 158 } 159 160 Sequence<BYTE> createIntSeq( INT32 i ) 161 { 162 char pcCount[20]; 163 sprintf( pcCount , "%d" , i ); 164 return createSeq( pcCount ); 165 } 166 167