<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Bericht</TITLE>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2800.1226" name=GENERATOR></HEAD>
<BODY>
<DIV><SPAN class=242274019-02102003><FONT face=Arial color=#0000ff size=2>should 
that not be regsvr32 ???</FONT></SPAN></DIV>
<DIV><SPAN class=242274019-02102003><FONT face=Arial color=#0000ff size=2>I 
always used this.</FONT></SPAN></DIV>
<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px">
  <DIV></DIV>
  <DIV class=OutlookMessageHeader lang=nl dir=ltr align=left><FONT face=Tahoma 
  size=2>-----Oorspronkelijk bericht-----<BR><B>Van:</B> 
  accessd-bounces@databaseadvisors.com 
  [mailto:accessd-bounces@databaseadvisors.com] <B>Namens </B>John 
  Skolits<BR><B>Verzonden:</B> donderdag 2 oktober 2003 20:25<BR><B>Aan:</B> 
  Access Developers discussion and problem solving<BR><B>Onderwerp:</B> RE: 
  [AccessD] OT - Registrering DLL's<BR><BR></FONT></DIV>
  <DIV><SPAN class=552391518-02102003><FONT face=Arial color=#0000ff size=2>Here 
  ya' go. Found this on the web. To use it, just paste all the code below the 
  line into a module. Then, run the code:</FONT></SPAN></DIV>
  <DIV><SPAN class=552391518-02102003><FONT face=Arial color=#0000ff 
  size=2></FONT></SPAN> </DIV>
  <DIV><SPAN class=552391518-02102003><FONT face=Arial color=#0000ff size=2>call 
  RegDLL("c:\winnt\system32\COMDLG32.OCX",TRUE). </FONT></SPAN></DIV>
  <DIV><SPAN class=552391518-02102003><FONT face=Arial color=#0000ff 
  size=2></FONT></SPAN> </DIV>
  <DIV><SPAN class=552391518-02102003><FONT face=Arial color=#0000ff size=2>You 
  can put any dll file in there you want. Include the path.</FONT></SPAN></DIV>
  <DIV><SPAN class=552391518-02102003><FONT face=Arial color=#0000ff 
  size=2></FONT></SPAN> </DIV>
  <DIV><SPAN class=552391518-02102003><FONT face=Arial color=#0000ff 
  size=2>Place a true or false in there if you want a message box to show 
  up.</FONT></SPAN></DIV>
  <DIV><SPAN class=552391518-02102003><FONT face=Arial color=#0000ff 
  size=2></FONT></SPAN> </DIV>
  <DIV><SPAN class=552391518-02102003><FONT face=Arial color=#0000ff size=2>John 
  Skolits</FONT></SPAN></DIV>
  <DIV><SPAN class=552391518-02102003><FONT face=Arial color=#0000ff 
  size=2>_____________________________________________</FONT></SPAN></DIV>
  <BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px">
    <DIV class=OutlookMessageHeader dir=ltr align=left><FONT face=Tahoma 
    size=2><FONT face=Arial color=#0000ff>Option Compare 
    Database</FONT></FONT></DIV>
    <DIV> </DIV>
    <DIV class=OutlookMessageHeader dir=ltr align=left><FONT face=Tahoma 
    size=2><FONT face=Arial color=#0000ff>Option Explicit</FONT></FONT></DIV>
    <DIV> </DIV>
    <DIV class=OutlookMessageHeader dir=ltr align=left><FONT face=Tahoma 
    size=2><FONT face=Arial color=#0000ff>Private Declare Function LoadLibraryA 
    Lib "kernel32" (ByVal lLibFileName As String) As Long<BR>Private Declare 
    Function CreateThread Lib "kernel32" (lThreadAttributes As Any, 
    _<BR>    ByVal lStackSize As Long, ByVal lStartAddress As 
    Long, ByVal larameter As Long, _<BR>    ByVal lCreationFlags 
    As Long, lThreadID As Long) As Long<BR>Private Declare Function 
    WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, 
    _<BR>    ByVal lMilliseconds As Long) As Long<BR>Private 
    Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, 
    _<BR>    ByVal lProcName As String) As Long<BR>Private 
    Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" 
    _<BR>    (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, 
    ByVal Msg As Long, _<BR>    ByVal wParam As Long, ByVal 
    lParam As Long) As Long<BR>Private Declare Function FreeLibrary Lib 
    "kernel32" (ByVal hLibModule As Long) As Long<BR>Private Declare Function 
    CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long<BR>Private 
    Declare Function GetExitCodeThread Lib "kernel32" (ByVal hThread As Long, 
    lExitCode As Long) As Long<BR>Private Declare Sub ExitThread Lib "kernel32" 
    (ByVal lExitCode As Long)</FONT></FONT></DIV>
    <DIV> </DIV>
    <DIV class=OutlookMessageHeader dir=ltr align=left><FONT face=Tahoma 
    size=2><FONT face=Arial color=#0000ff>Function RegDLL(strDLL_Name As String, 
    Optional bolShowMsg As Boolean)<BR>    If 
    RegisterComponent(strDLL_Name) = True 
    Then<BR>        If bolShowMsg Then MsgBox 
    "Component Successfully Registered"<BR>    
    Else<BR>        If bolShowMsg Then MsgBox 
    "Failed to Registered Component"<BR>    End If<BR>End 
    Function</FONT></FONT></DIV>
    <DIV> </DIV><FONT face=Tahoma size=2><FONT face=Arial color=#0000ff>
    <DIV class=OutlookMessageHeader dir=ltr align=left><BR>'Purpose   
    :    This function registers and Unregisters OLE 
    components<BR>'Inputs    :    
    sFilePath       The path to the DLL/OCX or 
    ActiveX 
    EXE<BR>'               
    bRegister                       
    If True Registers the 
    control,<BR>'               
    else unregisters control<BR>'Outputs   :    Returns 
    True if successful<BR>'Author    :    
    Andrewb<BR>'Date      :    
    04/09/2000<BR>'Notes     :    This is the 
    API equivalent of RegSvr32.exe.<BR>'Revisions :    
    1/Jan/2002. Updated to include code for registering ActiveX Exes.</DIV>
    <DIV> </DIV>
    <DIV class=OutlookMessageHeader dir=ltr align=left>Function 
    RegisterComponent(ByVal sFilePath As String, Optional bRegister As Boolean = 
    True) As Boolean<BR>    Dim lLibAddress As Long, lProcAddress 
    As Long, lThreadID As Long, _<BR>        
    lSuccess As Long, lExitCode As Long, lThread As Long<BR>    
    Dim sRegister As String<BR>    Const clMaxTimeWait As Long = 
    20000     'Wait 20 secs for register to 
    complete<BR>    <BR>    On Error GoTo 
    ErrFailed<BR>    If Len(sFilePath) > 0 And 
    Len(Dir(sFilePath)) > 0 
    Then<BR>        'File 
    exists<BR>        If 
    UCase$(Right$(sFilePath, 3)) = "EXE" 
    Then<BR>            
    'Register/Unregister ActiveX 
    EXE<BR>            If 
    bRegister 
    Then<BR>                
    'Register 
    EXE<BR>                
    Shell sFilePath & " /REGSERVER", 
    vbHide<BR>            
    Else<BR>                
    'Unregister ActiveX 
    EXE<BR>                
    Shell sFilePath & " /UNREGSERVER", 
    vbHide<BR>            
    End If<BR>            
    RegisterComponent = True<BR>        
    Else<BR>            
    'Register/Unregister 
    DLL<BR>            If 
    bRegister 
    Then<BR>                
    sRegister = 
    "DllRegisterServer"<BR>            
    Else<BR>                
    sRegister = 
    "DllUnRegisterServer"<BR>            
    End If<BR>            
    <BR>            'Load 
    library into current 
    process<BR>            
    lLibAddress = 
    LoadLibraryA(sFilePath)<BR>            
    <BR>            If 
    lLibAddress 
    Then<BR>                
    'Get address of the DLL 
    function<BR>                
    lProcAddress = GetProcAddress(lLibAddress, 
    sRegister)<BR>                
    If lProcAddress 
    Then<BR>                    
    lThread = CreateThread(ByVal 0&, 0&, ByVal lProcAddress, ByVal 
    0&, 0&, 
    lThread)<BR>                    
    If lThread 
    Then<BR>                        
    'Created thread and wait for it to 
    terminate<BR>                        
    lSuccess = (WaitForSingleObject(lThread, clMaxTimeWait) = 
    0)<BR>                        
    If Not lSuccess 
    Then<BR>                            
    'Failed to register, close 
    thread<BR>                            
    Call GetExitCodeThread(lThread, 
    lExitCode)<BR>                            
    Call 
    ExitThread(lExitCode)<BR>                            
    RegisterComponent = 
    False<BR>                        
    Else<BR>                            
    'Successfully registered 
    component<BR>                            
    RegisterComponent = 
    True<BR>                            
    Call 
    CloseHandle(lThread)<BR>                        
    End 
    If<BR>                    
    End 
    If<BR>                    
    Call 
    FreeLibrary(lLibAddress)<BR>                
    Else<BR>                    
    'Object doesn't expose OLE 
    interface<BR>                    
    Call 
    FreeLibrary(lLibAddress)<BR>                
    End If<BR>            
    End If<BR>        End 
    If<BR>    End If<BR>    Exit Function</DIV>
    <DIV> </DIV>
    <DIV class=OutlookMessageHeader dir=ltr 
    align=left>ErrFailed:<BR>    Debug.Print 
    Err.Description<BR>    Debug.Assert 
    False<BR>    On Error GoTo 0<BR>End 
    Function<BR></FONT></DIV></FONT></BLOCKQUOTE></BLOCKQUOTE></BODY></HTML>