-
kWab.dll
I am using a DLL named kWab.dll to import the address book of Outlook Express (not Microsoft Outlook). When I tried to register the DLL after copying the file in C:\WINDOWS\system32 using regsvr32, the following message was generated:
kwab.dll was loaded, but the DllRegisterServer entry point was not found.
The file cannot be registered.
But I could still manage to import the address book of Outlook Express & populate the addresses in a ListView. The app makes use of the following module:
Code:
Option Explicit
Public Type tWab
AddrBook As Long
WabObject As Long
InstWab As Long
End Type
Public Type SBinary
cb As Long
lpb As Long
End Type
Public Declare Function kWabAddNewGUI Lib "kwab.dll" (ByRef kw As tWab, ByVal hWnd As Long) As Boolean
Public Declare Function kWabOpen Lib "kwab.dll" (ByRef kw As tWab) As Long
Public Declare Sub kWabClose Lib "kwab.dll" (ByRef kw As tWab)
Public Declare Function kWabGetNumEntries Lib "kwab.dll" (ByRef kw As tWab) As Long
Public Declare Function kWabGetEntries Lib "kwab.dll" (ByRef kw As tWab, ByRef FirstElementOfEntriesArray As SBinary, ByVal nBuf As Long) As Long
Public Declare Sub kWabFreeEntries Lib "kwab.dll" (ByRef kw As tWab, ByRef FirstElementOfEntriesArray As SBinary, ByVal nBuf As Long)
Public Declare Function kWabGetProp_String Lib "kwab.dll" (ByRef kw As tWab, ByRef Entry As SBinary, ByVal PropTag As Long, ByVal str As String, ByVal LnStr As Long, ByVal UseUnicode As Boolean) As Boolean
Public Declare Function kWabDetails Lib "kwab.dll" (ByRef kw As tWab, ByRef Entry As SBinary, ByVal hWnd As Long) As Boolean
Public Declare Function kWabGetNumProps Lib "kwab.dll" (ByRef kw As tWab, ByRef Entry As SBinary) As Long
Public Declare Function kWabGetPropTag Lib "kwab.dll" (ByRef kw As tWab, ByRef Entry As SBinary, ByVal PropertyIndex As Long, ByVal UseUnicode As Boolean) As Long
Since the app that uses kWab.dll has to be deployed on other machines which most probably won't have kWab.dll, I tried to add kWab.dll as a reference to this project (by navigating to the Project--->References menu in the VB IDE & then clicking the Browse button) but VB generated the following error:
Can't add a reference to the specified file
Now how do I add kWab.dll as a reference to this project so that when the app is installed in other machines, the app can import the address book from Outlook Express?
I am using Inno to create the package. Can I include kWab.dll in the Inno script so that when the app is installed on other machines, kWab.dll can be saved in the <Windows Folder>\system32 folder & then be registered using regsvr32?
-
Re: kWab.dll
I'd try it and see what happens.
-
Re: kWab.dll
when you create the install package at some point you can add dependency files, at that point just browse to your dll
as the file can not be registered you should either put it in the same folder as your application or give the full path to the file in your declares
Code:
Public Declare Sub kWabClose Lib "C:\somefolder\kwab.dll" (ByRef kw As tWab)
as you don't know the correct path to the system32 folder on a users machine i am not sure about how to set to that folder
i would probably choose to put in the app folder
-
Re: kWab.dll
Where did you get this DLL and what is it written in?