Changeset 1254
- Timestamp:
- 06/04/03 07:08:12 (5 years ago)
- Files:
-
- trunk/swishctl/src/CSwishCtl.cpp (modified) (1 diff)
- trunk/swishctl/src/SwishCtl.cpp (modified) (1 diff)
- trunk/swishctl/src/SwishCtl.dsp (modified) (2 diffs)
- trunk/swishctl/src/SwishCtl.dsw (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/swishctl/src/CSwishCtl.cpp
r1236 r1254 1 1 /* 2 2 3 * $Id$ 4 3 5 * 6 4 7 * SwishCtl - SWISH-E API ActiveX Control 8 5 9 * Copyright (c) 2003 Peoples Resource Centre Wellington NZ 10 6 11 * 12 7 13 * This program is free software; you can redistribute it and/or modify 14 8 15 * it under the terms of the GNU General Public License as published by 16 9 17 * the Free Software Foundation; either version 2 of the License, or 18 10 19 * (at your option) any later version. 20 11 21 * 22 12 23 * This program is distributed in the hope that it will be useful, 24 13 25 * but WITHOUT ANY WARRANTY; without even the implied warranty of 26 14 27 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 28 15 29 * GNU General Public License for more details. 30 16 31 * 32 17 33 * You should have received a copy of the GNU General Public License 34 18 35 * along with this program; if not, write to the Free Software 36 19 37 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 38 20 39 */ 21 40 41 42 22 43 // CSwishCtl.cpp : Implementation of CCSwishCtl 44 23 45 // N.B. can't add swish-e/src to build settings for this project 46 24 47 // because the folder contains a string.h which overrides the 48 25 49 // default search location for string.h ! 50 26 51 #include "stdafx.h" 52 27 53 #include <string> 54 28 55 using namespace std; 29 56 30 #include "../swish-e/src/swish-e.h" 57 58 59 #include "swish-e.h" 60 31 61 #include "SwishCtl.h" 62 32 63 #include "CSwishCtl.h" 64 33 65 #include "AnsiBSTR.h" 66 34 67 #include "regkey.h" 35 68 69 70 36 71 ///////////////////////////////////////////////////////////////////////////// 72 37 73 // CCSwishCtl 74 38 75 CCSwishCtl::CCSwishCtl() 39 { 76 77 { 78 40 79 swish_handle = NULL; 80 41 81 swish_results = NULL; 82 42 83 current_result = NULL; 43 } 84 85 } 86 87 44 88 45 89 CCSwishCtl::~CCSwishCtl(void) 46 { 90 91 { 92 47 93 94 48 95 if ( swish_handle ) { 96 49 97 SwishClose( swish_handle ); /* free the memory used */ 50 } 51 } 98 99 } 100 101 } 102 103 52 104 53 105 // I didn't know where to put this prototype... 106 54 107 // so it can go here for the meantime 108 55 109 bool GetModulePath(char filename[ _MAX_PATH ]); 56 110 57 111 112 113 114 58 115 STDMETHODIMP CCSwishCtl::Init(BSTR IndexFiles) 59 { 116 117 { 118 60 119 // In order to claim "safe for scripting", 120 61 121 // don't allow location of resources to be specified 122 62 123 // as a parameter - for this application, the dll must 124 63 125 // and the index files must reside in the same folder 64 126 127 128 65 129 // So now the IndexFiles parameter is the name of a 130 66 131 // registry value in the options key for this app 67 132 133 134 68 135 //BstrConverter bstr_indexfiles(IndexFiles); 69 136 137 138 70 139 const char registrykey[] = "Software\\Kauranga\\ACCIndex\\1.0\\Options"; 71 140 141 142 72 143 CAnsiStr bstr_indexfiles(IndexFiles); 73 144 145 146 74 147 RegKey hkcu(HKEY_LOCAL_MACHINE) ; 75 148 76 149 150 151 152 77 153 string indexfilepath; 154 78 155 string indexfilename; 79 156 80 157 158 159 160 81 161 if (hkcu.OpenKey( registrykey, KEY_QUERY_VALUE )) { 162 82 163 indexfilepath = hkcu.QueryValue( "IndexLocation" ); 164 83 165 indexfilename = hkcu.QueryValue( "IndexFiles" ); 84 } 166 167 } 168 85 169 86 170 171 172 87 173 chdir( indexfilepath.c_str() ); 88 174 175 176 89 177 swish_handle = SwishInit((char *)indexfilename.c_str()); 178 90 179 180 91 181 if ( ! swish_handle ) { 182 92 183 ::MessageBox( NULL, "SwishInit call failed...", indexfilepath.c_str(), MB_OK ); 184 93 185 return E_FAIL; 94 } 186 187 } 188 95 189 if ( SwishError( swish_handle ) ) { 190 96 191 ::MessageBox( NULL, indexfilepath.c_str(), "Swish-e Index File error...", MB_OK ); 97 192 193 194 98 195 SwishClose( swish_handle ); /* free the memory used */ 196 99 197 return E_FAIL; 198 100 199 } 101 200 201 202 102 203 swish_search = NULL; 103 204 104 return S_OK; 105 } 205 206 207 return S_OK; 208 209 } 210 211 212 106 213 107 214 108 215 STDMETHODIMP CCSwishCtl::GetInterfaceSafetyOptions(REFIID riid, DWORD *pdwSupportedOptions, DWORD *pdwEnabledOptions) 109 { 216 217 { 218 110 219 ATLTRACE(_T("CObjectSafetyImpl::GetInterfaceSafetyOptions\n")); 220 111 221 if (!pdwSupportedOptions || !pdwEnabledOptions) 222 112 223 return E_FAIL; 224 113 225 LPUNKNOWN pUnk; 226 114 227 if (_InternalQueryInterface (riid, (void**)&pUnk) == E_NOINTERFACE) 228 115 229 { 230 116 231 // Our object doesn't even support this interface. 232 117 233 return E_NOINTERFACE; 234 118 235 } else { 236 119 237 // Cleanup after ourselves. 238 120 239 pUnk->Release(); 240 121 241 pUnk = NULL; 242 122 243 } 244 123 245 if (riid == IID_IDispatch) { 246 124 247 // IDispatch is an interface used for scripting. If your 248 125 249 // control supports other IDispatch or Dual interfaces, you 250 126 251 // may decide to add them here as well. Client wants to know 252 127 253 // if object is safe for scripting. Only indicate safe for 254 128 255 // scripting when the interface is safe. 256 129 257 *pdwSupportedOptions = INTERFACESAFE_FOR_UNTRUSTED_CALLER; 258 130 259 *pdwEnabledOptions = m_dwSafety & 260 131 261 INTERFACESAFE_FOR_UNTRUSTED_CALLER; 262 132 263 return S_OK; 264 133 265 } else if ((riid == IID_IPersistStreamInit) || 266 134 267 (riid == IID_IPersistStorage)) 268 135 269 { 270 136 271 // IID_IPersistStreamInit and IID_IPersistStorage are 272 137 273 // interfaces used for Initialization. If your control 274 138 275 // supports other Persistence interfaces, you may decide to 276 139 277 // add them here as well. Client wants to know if object is 278 140 279 // safe for initializing. Only indicate safe for initializing 280 141 281 // when the interface is safe. 282 142 283 *pdwSupportedOptions = INTERFACESAFE_FOR_UNTRUSTED_DATA; 284 143 285 *pdwEnabledOptions = m_dwSafety & 286 144 287 INTERFACESAFE_FOR_UNTRUSTED_DATA; 288 145 289 return S_OK; 290 146 291 } else { 292 147 293 // We are saying that no other interfaces in this control are 294 148 295 // safe for initializing or scripting. 296 149 297 *pdwSupportedOptions = 0; 298 150 299 *pdwEnabledOptions = 0; 300 151 301 return E_FAIL; 152 } 153 } 302 303 } 304 305 } 306 307 154 308 155 309 STDMETHODIMP CCSwishCtl::SetInterfaceSafetyOptions(REFIID riid, DWORD dwOptionSetMask, DWORD dwEnabledOptions) 156 { 310 311 { 312 157 313 ATLTRACE(_T("CObjectSafetyImpl::SetInterfaceSafetyOptions\n")); 314 158 315 if (!dwOptionSetMask && !dwEnabledOptions) return E_FAIL; 159 316 317 318 160 319 LPUNKNOWN pUnk; 320 161 321 if (_InternalQueryInterface (riid, (void**)&pUnk) == E_NOINTERFACE) 322 162 323 { 324 163 325 // Our object doesn't even support this interface. 326 164 327 return E_NOINTERFACE; 328 165 329 } else { 330 166 331 // Cleanup after ourselves. 332 167 333 pUnk->Release(); 334 168 335 pUnk = NULL; 336 169 337 } 338 170 339 // Store our current safety level to return in 340 171 341 // GetInterfaceSafetyOptions 342 172 343 m_dwSafety |= dwEnabledOptions & dwOptionSetMask; 344 173 345 if ((riid == IID_IDispatch) && 346 174 347 (m_dwSafety & INTERFACESAFE_FOR_UNTRUSTED_CALLER)) 348 175 349 { 350 176 351 // Client wants us to disable any functionality that would 352 177 353 // make the control unsafe for scripting. The same applies to 354 178 355 // any other IDispatch or Dual interfaces your control may 356 179 357 // support. Because our control is safe for scripting by 358 180 359 // default we just return S_OK. 360 181 361 return S_OK; 362 182 363 } else if (((riid == IID_IPersistStreamInit) || 364 183 365 (riid == IID_IPersistStorage)) && 366 184 367 (m_dwSafety & INTERFACESAFE_FOR_UNTRUSTED_DATA)) 368 185 369 { 370 186 371 // Client wants us to make the control safe for initializing 372 187 373 // from persistent data. For these interfaces, this control 374 188 375 // is safe so we return S_OK. For Any interfaces that are not 376 189 377 // safe, we would return E_FAIL. 378 190 379 return S_OK; 380 191 381 } else { 382 192 383 // This control doesn't allow Initialization or Scripting 384 193 385 // from any other interfaces so return E_FAIL. 386 194 387 return E_FAIL; 388 195 389 } 196 } 390 391 } 392 393 394 197 395 198 396 199 397 STDMETHODIMP CCSwishCtl::Error(int *errcode) 200 { 398 399 { 400 201 401 *errcode = SwishError( swish_handle ); 202 return S_OK; 203 } 402 403 return S_OK; 404 405 } 406 407 408 204 409 205 410 206 411 STDMETHODIMP CCSwishCtl::Query(BSTR words, int *errcode) 207 { 412 413 { 414 415 208 416 209 417 HRESULT hresult = NewSearch( words, errcode ); 210 418 419 420 211 421 if ( hresult != S_OK ) return hresult; 212 422 423 424 213 425 return Execute( NULL, errcode ); 214 } 426 427 } 428 429 215 430 216 431 STDMETHODIMP CCSwishCtl::ErrorString(BSTR *errstring) 217 { 432 433 { 434 218 435 if ( ! swish_handle ) { 436 219 437 return E_FAIL; 220 } 438 439 } 440 441 221 442 222 443 char *err = SwishErrorString(swish_handle); 444 223 445 446 224 447 CAnsiBSTR bstrTemp( err ); 225 448 449 450 226 451 if (!bstrTemp) 452 227 453 return E_OUTOFMEMORY; 454 228 455 456 229 457 *errstring = bstrTemp.Detach(); 230 return S_OK; 231 } 458 459 return S_OK; 460 461 } 462 463 232 464 233 465 STDMETHODIMP CCSwishCtl::Hits(int *hits) 234 { 466 467 { 468 235 469 if (! swish_results ) return E_FAIL; 470 236 471 *hits = SwishHits( swish_results ); 237 return S_OK; 238 } 472 473 return S_OK; 474 475 } 476 477 239 478 240 479 STDMETHODIMP CCSwishCtl::NextResult(int *more) 241 { 480 481 { 482 242 483 *more = FALSE; 484 243 485 if (!swish_results) return E_FAIL; 244 486 487 488 245 489 current_result = SwishNextResult( swish_results ); 490 246 491 if ( current_result ) *more = TRUE; 492 247 493 248 return S_OK; 249 } 494 495 return S_OK; 496 497 } 498 499 500 250 501 251 502 252 503 STDMETHODIMP CCSwishCtl::ResultPropertyString( 504 253 505 BSTR propertyname, BSTR *result) 254 { 506 507 { 508 509 510 255 511 256 512 257 513 CAnsiStr bstr_convert(propertyname); 258 514 515 516 259 517 char *propertyval = SwishResultPropertyStr( 518 260 519 current_result, bstr_convert.c_str()); 261 520 521 522 262 523 CAnsiBSTR bstrTemp( propertyval ); 263 524 525 526 264 527 if (!bstrTemp) 528 265 529 return E_OUTOFMEMORY; 530 266 531 532 267 533 *result = bstrTemp.Detach(); 268 534 269 return S_OK; 270 271 } 535 536 537 return S_OK; 538 539 540 541 } 542 543 272 544 273 545 STDMETHODIMP CCSwishCtl::Close() 274 { 546 547 { 548 275 549 current_result = NULL; 550 276 551 if ( swish_handle ) { 552 277 553 if ( swish_results ) { 554 278 555 Free_Results_Object( swish_results ); 556 279 557 swish_results = NULL; 558 280 559 } 560 281 561 if (swish_search) { 562 282 563 Free_Search_Object( swish_search ); 564 283 565 swish_search = NULL; 566 284 567 } 568 285 569 SwishClose( swish_handle ); /* free the memory used */ 570 286 571 swish_handle = NULL; 287 } 288 289 return S_OK; 290 } 572 573 } 574 575 576 577 return S_OK; 578 579 } 580 581 291 582 292 583 STDMETHODIMP CCSwishCtl::SeekResult(int position, int *result) 293 { 584 585 { 586 294 587 *result = -1; // an error 588 295 589 if (!swish_results) return S_OK; 296 590 591 592 297 593 *result = SwishSeekResult( swish_results, position ); 594 298 595 299 return S_OK; 300 } 596 597 return S_OK; 598 599 } 600 601 301 602 302 603 STDMETHODIMP CCSwishCtl::SetSort(BSTR sort) 303 { 604 605 { 606 304 607 if ( ! (swish_handle && swish_search) ){ 608 305 609 return E_FAIL; 306 } 610 611 } 612 613 307 614 308 615 CAnsiStr bstr_sort( sort ); 309 616 617 618 310 619 SwishSetSort( swish_search, bstr_sort.c_str() ); 311 620 312 return S_OK; 313 } 621 622 623 return S_OK; 624 625 } 626 627 628 314 629 315 630 316 631 STDMETHODIMP CCSwishCtl::NewSearch(BSTR query, int *errcode) 317 { 632 633 { 634 318 635 *errcode = -1; 636 319 637 if ( ! swish_handle ) { 638 320 639 ::MessageBox( NULL, "swish_handle is null...", "New Search", MB_OK ); 640 321 641 return E_FAIL; 322 } 642 643 } 644 323 645 CAnsiStr bstr_query( query ); 324 646 647 648 325 649 if ( swish_results ) { 650 326 651 Free_Results_Object(swish_results); 652 327 653 swish_results = NULL; 328 } 654 655 } 656 657 329 658 330 659 if ( swish_search ) { 660 331 661 Free_Search_Object( swish_search ); 332 } 662 663 } 664 333 665 swish_search = New_Search_Object( swish_handle, bstr_query.c_str() ); 334 666 335 667 668 669 670 336 671 SwishResetSearchLimit( swish_search ); 337 672 673 674 338 675 if ( ! swish_search ) { 676 339 677 ::MessageBox( NULL, "swish_search is null...", "Error", MB_OK ); 340 } 678 679 } 680 681 341 682 342 683 *errcode = SwishError( swish_handle ); 343 684 344 return S_OK; 345 } 685 686 687 return S_OK; 688 689 } 690 691 346 692 347 693 STDMETHODIMP CCSwishCtl::Execute(BSTR words, int *errcode) 348 { 694 695 { 696 349 697 *errcode = -1; 698 350 699 if ( ! swish_handle ) { 700 351 701 702 352 703 return E_FAIL; 353 } 704 705 } 706 707 354 708 355 709 if ( !words ) { 710 356 711 // use existing query string - no need to convert string 712 357 713 swish_results = SwishExecute( swish_search, NULL ); 714 358 715 *errcode = SwishError( swish_handle ); 716 359 717 return S_OK; 718 360 719 } 720 361 721 CAnsiStr bstr_words( words ); 722 362 723 swish_results = SwishExecute( swish_search, bstr_words.c_str() ); 363 724 725 726 364 727 *errcode = SwishError( swish_handle ); 365 728 366 return S_OK; 367 } 729 730 731 return S_OK; 732 733 } 734 735 736 737 368 738 369 739 370 740 371 741 STDMETHODIMP CCSwishCtl::SetSearchLimit(BSTR propertyname, BSTR low, BSTR hi) 372 { 742 743 { 744 373 745 if ( ! (swish_handle && swish_search) ){ 746 374 747 return E_FAIL; 375 } 748 749 } 750 376 751 CAnsiStr bstr_propertyname(propertyname); 752 377 753 CAnsiStr bstr_low(low); 754 378 755 CAnsiStr bstr_hi(hi); 379 756 757 758 380 759 SwishSetSearchLimit( swish_search, 760 381 761 bstr_propertyname.c_str(), 762 382 763 bstr_low.c_str(), 764 383 765 bstr_hi.c_str() ); 384 return S_OK; 385 } 386 766 767 return S_OK; 768 769 } 770 771 772 trunk/swishctl/src/SwishCtl.cpp
r1236 r1254 1 1 /* 2 2 3 * $Id$ 3 * 4 5 * 6 4 7 * SwishCtl - SWISH-E API ActiveX Control 8 5 9 * Copyright (c) 2003 Peoples Resource Centre Wellington NZ 6 * 10 11 * 12 7 13 * This program is free software; you can redistribute it and/or modify 14 8 15 * it under the terms of the GNU General Public License as published by 16 9 17 * the Free Software Foundation; either version 2 of the License, or 18 10 19 * (at your option) any later version. 11 * 20 21 * 22 12 23 * This program is distributed in the hope that it will be useful, 24 13 25 * but WITHOUT ANY WARRANTY; without even the implied warranty of 26 14 27 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 28 15 29 * GNU General Public License for more details. 16 * 30 31 * 32 17 33 * You should have received a copy of the GNU General Public License 34 18 35 * along with this program; if not, write to the Free Software 36 19 37 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 38 20 39 */ 21 40 41 42 22 43 // SwishCtl.cpp : Implementation of DLL Exports. 23 44 24 45 46 47 48 25 49 // Note: Proxy/Stub Information 50 26 51 // To build a separate proxy/stub DLL, 52 27 53 // run nmake -f SwishCtlps.mk in the project directory. 28 54 55 56 29 57 #include "stdafx.h" 58 30 59 #include "resource.h" 60 31 61 #include <initguid.h> 62 32 63 #include "SwishCtl.h" 33 64 65 66 34 67 #include "SwishCtl_i.c" 35 #include "../swish-e/src/swish-e.h" 68 69 #include "swish-e.h" 70 71 36 72 37 73 #include "CSwishCtl.h" 38 74 75 76 39 77 CComModule _Module; 40 78 79 80 41 81 BEGIN_OBJECT_MAP(ObjectMap) 82 42 83 OBJECT_ENTRY(CLSID_CSwishCtl, CCSwishCtl) 84 43 85 END_OBJECT_MAP() 44 86 45 87 88 89 90 46 91 bool GetModulePath(char filename[ _MAX_PATH ]) 47 { 92 93 { 94 48 95 96 49 97 DWORD result = GetModuleFileName( _Module.m_hInst, filename, _MAX_PATH ); 98 50 99 if ( result > 0 ) { 100 51 101 char drive [_MAX_DIR ]; 102 52 103 char dir [_MAX_PATH ]; 104 53 105 _splitpath( filename, drive, dir, NULL, NULL); 106 54 107 _makepath( filename, drive, dir, NULL, NULL ); 108 55 109 return true; 110 56 111 } 112 57 113 return false; 58 } 59 60 ///////////////////////////////////////////////////////////////////////////// 114 115 } 116 117 118 119 ///////////////////////////////////////////////////////////////////////////// 120 61 121 // DLL Entry Point 62 122 123 124 63 125 extern "C" 126 64 127 BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/) 65 { 128 129 { 130 66 131 if (dwReason == DLL_PROCESS_ATTACH) 132 67 133 { 134 68 135 _Module.Init(ObjectMap, hInstance, &LIBID_SWISHCTLLib); 136 69 137 DisableThreadLibraryCalls(hInstance); 138 70 139 } 140 71 141 else if (dwReason == DLL_PROCESS_DETACH) 142 72 143 _Module.Term(); 144 73 145 return TRUE; // ok 74 } 75 76 ///////////////////////////////////////////////////////////////////////////// 146 147 } 148 149 150 151 ///////////////////////////////////////////////////////////////////////////// 152 77 153 // Used to determine whether the DLL can be unloaded by OLE 78 154 155 156 79 157 STDAPI DllCanUnloadNow(void) 80 { 158 159 { 160 81 161 return (_Module.GetLockCount()==0) ? S_OK : S_FALSE; 82 } 83 84 ///////////////////////////////////////////////////////////////////////////// 162 163 } 164 165 166 167 ///////////////////////////////////////////////////////////////////////////// 168 85 169 // Returns a class factory to create an object of the requested type 86 170 171 172 87 173 STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv) 88 { 174 175 { 176 89 177 return _Module.GetClassObject(rclsid, riid, ppv); 90 } 91 92 ///////////////////////////////////////////////////////////////////////////// 178 179 } 180 181 182 183 ///////////////////////////////////////////////////////////////////////////// 184 93 185 // DllRegisterServer - Adds entries to the system registry 94 186 187 188 95 189 STDAPI DllRegisterServer(void) 96 { 190 191 { 192 97 193 // registers object, typelib and all interfaces in typelib 98 194 195 196 99 197 return _Module.RegisterServer(TRUE); 100 } 101 102 ///////////////////////////////////////////////////////////////////////////// 198 199 } 200 201 202 203 ///////////////////////////////////////////////////////////////////////////// 204 103 205 // DllUnregisterServer - Removes entries from the system registry 104 206 207 208 105 209 STDAPI DllUnregisterServer(void) 106 { 210 211 { 212 107 213 return _Module.UnregisterServer(TRUE); 108 } 109 110 214 215 } 216 217 218 219 220 trunk/swishctl/src/SwishCtl.dsp
r1237 r1254 52 52 LINK32=link.exe 53 53 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept 54 # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ../../swish-e/src/win32/libswish-e.lib ../../zlib/zlib.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept 55 # Begin Custom Build - Performing registration 56 OutDir=.\Debug 57 TargetPath=.\Debug\SwishCtl.dll 58 InputPath=.\Debug\SwishCtl.dll 59 SOURCE="$(InputPath)" 60 61 "$(OutDir)\regsvr32.trg" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" 62 regsvr32 /s /c "$(TargetPath)" 63 echo regsvr32 exec. time > "$(OutDir)\regsvr32.trg" 64 65 # End Custom Build 54 # ADD LINK32 kernel32.lib ../../swish-e/src/win32/libswish-e-mt.lib ../../zlib/lib/zlib.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept 66 55 67 56 !ELSEIF "$(CFG)" == "SwishCtl - Win32 Release MinSize" … … 87 76 LINK32=link.exe 88 77 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 89 # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ../../swish-e/src/win32/libswishsearch.lib ../../zlib/zlib.lib /nologo /subsystem:windows /dll /machine:I386 /out:"../SwishCtl.dll"78 # ADD LINK32 kernel32.lib ../../swish-e/src/win32/libswish-e-mt.lib ../../zlib/lib/zlib.lib /nologo /subsystem:windows /dll /machine:I386 /out:"../SwishCtl.dll" 90 79 # SUBTRACT LINK32 /nodefaultlib 91 # Begin Custom Build - Performing registration92 OutDir=.\ReleaseMinSize93 TargetPath=\projects\swish\win32\swishctl\SwishCtl.dll94 InputPath=\projects\swish\win32\swishctl\SwishCtl.dll95 SOURCE="$(InputPath)"96 97 "$(OutDir)\regsvr32.trg" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"98 regsvr32 /s /c "$(TargetPath)"99 echo regsvr32 exec. time > "$(OutDir)\regsvr32.trg"100 101 # End Custom Build102 80 103 81 !ENDIF trunk/swishctl/src/SwishCtl.dsw
r1232 r1254 1 1 Microsoft Developer Studio Workspace File, Format Version 6.00 2 2 3 # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 4 5 3 6 4 7 ############################################################################### 5 8 9 10 6 11 Project: "SwishCtl"=.\SwishCtl.dsp - Package Owner=<4> <
