Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Lotus Organizer 97 API
Message
General information
Forum:
Visual FoxPro
Category:
Windows API functions
Miscellaneous
Thread ID:
00055806
Message ID:
00056042
Views:
34
>>I will try your pass by reference tomorrow and keep my fingers crossed. The DLL function I am trying to call has a callbank function as one of its arguments. How should I handle this? Does this mean I cannot use this function? If so, I'll have to use VB or VC++.
>
>It depends. Can you post here the samples you had in VC++ and VB? If it's an optional parameter (maybe you don't need to pass a callback function, maybe it's just if you want to change a default function?), than you may be able to use it. If it's a mandatory one... no way.

I have included VB and VC++ code below. It looks like the callback function is optional.

Thanks for everyone's help!

********** Visual Basic Code **********

Public Sub Main()
Attribute Main.VB_Description = "->Used to start this program. Check it out!"
Dim Err&
Dim hOrgAPI As Long
Dim InitFlag As Long
Dim OrgRegCount As Long
Dim Error_BadPassword As Boolean

Dim ccMailDir As String
Dim InfoBuffer As String
Dim UserName As String
Dim UserPassword As String

' I cut out a bunch of code here

frmCCMAIL_Start:
'If installation is cc:Mail, then show cc:Mail SignIn form
If GetSetting(Appname:="Organizer BackPack", Section:="Session", Key:="Scheduling") = "cc:Mail" Then

'Display cc:Mail SignIn form
ccMailDir = ""
UserName = ""
UserPassword = ""
InitFlag& = OAIF_VALIDATE& Or OAIF_NOUI&
'If frmCCMAIL.Tag = "Cancel" then goto Cancel_Pressed
'Unload cc:Mail SignIn form
End If

Session_Start:
'** {OrgAPIInit} Initialize an Organizer Session **
hOrgAPI& = OrgAPIInit(0, 0, 0, 0, ccMailDir, UserName, UserPassword, InitFlag&, Err&)
If hOrgAPI& = 0 Then

' I cut out the rest of program

********** Visual C++ Code **********

// I cut this statement from the top of the C program

/* Function pointer to error display routine */
LPFNMESSAGEBOX lpfnMsgCallback;

/****************************************************************************
FUNCTION: ErrorHandler - Callback from InitApi and OrgAPIUIHandleError
PURPOSE: Print all OrgApi Messages with our own MessageBox
****************************************************************************/
//LPFNMESSAGEBOX
UINT CALLBACK _export ErrorHandler( HWND hWnd, LPCSTR lpszText, LPCSTR lpszCaption, UINT uiFlags )
{
LogIt("ErrorHandler %s %s",lpszText, lpszCaption);
MessageBox( hWnd, lpszText, lpszCaption, uiFlags );
return 0;
}


/****************************************************************************
FUNCTION: InitApi
PURPOSE: Do all the work required to Initialize an API session
****************************************************************************/

HORGAPI InitApi(HWND hwnd, HINSTANCE hThisInst, HINSTANCE hPrevInst,
LPSTR lpszContainerPath, LPSTR lpszName, LPSTR lpszNamePassword)
{
long OrgAPIInitError;
HORGAPI hOrgApi=0;

lpfnMsgCallback = ErrorHandler;

if(!APIVersion())
OrgAPIUIHandleError(hOrgApi, hwnd, lpfnMsgCallback);

hOrgApi = OrgAPIInit(hwnd, hThisInst, hPrevInst, lpfnMsgCallback,
lpszContainerPath, lpszName, lpszNamePassword,
OAIF_VALIDATE | OAIF_GRAYDIALOGS, (LPLONG)&OrgAPIInitError );

// I cut out the rest of this function
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform