Article ID: 153546
Article Last Modified on 7/13/2004
long _stdcall OptionalParamCall(LPSTR pStr, VARIANT op1, VARIANT op2)
{
if (op1.vt == VT_ERROR && op1.scode == DISP_E_PARAMNOTFOUND)
MessageBox (NULL, "Optional Param1 is Empty!", "Test DLL", MB_OK);
if (op2.vt == VT_ERROR && op2.scode == DISP_E_PARAMNOTFOUND)
MessageBox (NULL, "Optional Param2 is Empty!", "Test DLL", MB_OK);
MessageBox (NULL, pStr, "Test DLL", MB_OK);
return 1;
}
Export the function in a .DEF file as follows:
LIBRARY TESTDLL
CODE PRELOAD MOVEABLE DISCARDABLE
DATA PRELOAD SINGLE
EXPORTS
OptionalParamCall @1
Name this DLL as Testdll.dll and put the file into the
\system (Windows 95/98) or \system32 (Windows NT/2000) directory.
Private Declare Function OptionalParamCall Lib "testdll.dll" _
(ByVal s As String, Optional ByVal op1, Optional ByVal op2) As Long
Private Sub Form_Click()
ret& = OptionalParamCall("hello")
ret& = OptionalParamCall("hello", 7)
ret& = OptionalParamCall("hello", , "world")
ret& = OptionalParamCall("hello", 8.2, "Mike")
End Sub
Keywords: kbhowto kbapi KB153546