Board index » delphi » pass a function called in a dll to the main program

pass a function called in a dll to the main program

hello

i wrote a dll in witch windows calls a function when a certain event occurs.
how can i now pass this event and some parameters to my main program when
this event occurs , how can i handle this event in my main program ?

michael

----------------------------------------------------------------------------
----------

RasAdminGetIpAddressForUser
The RasAdminGetIpAddressForUser function is an application-defined function
that is exported by a third-party RAS server administration DLL. RAS calls
this function to get an IP address for the dialed-in remote client.

DWORD RasAdminGetIpAddressForUser(
  WCHAR *lpszUserName, // pointer to the name of the remote user
  WCHAR *lpszPortName, // pointer to the name of the port
  IPADDR *pipAddress,  // pointer to the IP address
  BOOL *bNotifyRelease // indicates whether RAS should call
                       // RasAdminReleaseIpAddress
);

Parameters
lpszUserName
Pointer to a null-terminated Unicode string that contains the name of the
remote user for whom an IP address is required.

lpszPortName
Pointer to a null-terminated Unicode string that contains the name of the
port on which the user specified by lpszUserName is attempting to connect.

pipAddress
Pointer to an IPADDR variable. On input, *pipAddress contains either zero or
the IP address that the RAS server proposes to use for the dialed-in remote
client. The function can set *pipAddress to a different IP address, or
accept the passed-in IP address. If *pipAddress is zero on input, the
function must provide an IP address; otherwise, the client will be unable to
connect to this server using IP.

bNotifyRelease
Pointer to a BOOL variable. Set this variable to TRUE if you want RAS to
call your RasAdminReleaseIpAddress function when the user disconnects from
this port; otherwise, set it to FALSE.
Return Values
If pipAddress points to an IP address that the client can use to connect to
this RAS server, the function should return NO_ERROR. This can occur if the
function accepts the IP address that was passed by the RAS server, or if the
function provides a different IP address.

If pipAddress does not point to an IP address, the function should return a
nonzero error code. This can occur if no IP address is available, or if the
passed in IP address is unacceptable. In this case, the client will be
unable to connect to this server using IP. There is no extended error
information for this function; do not call GetLastError.

Remarks
The setup program for a third-party RAS administration DLL must register the
DLL with RAS by providing information under the following key in the
registry:

  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RAS\AdminDll

To register the DLL, set the following values under this key.

Value Name Value Data
DisplayName A REG_SZ string that contains the user-friendly display name of
the DLL.
DLLPath A REG_SZ string that contains the full path of the DLL.

For example, the registry entry for a RAS Administration DLL from a
fictional company named Netwerks Corporation might be:

  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RAS\AdminDll
    DisplayName  :  REG_SZ  :  Netwerks RAS Admin DLL
    DLLPath      :  REG_SZ  :  C:\nt\system32\ntwkadm.dll

The setup program for a RAS Administration DLL should also provide
remove/uninstall functionality. If a user removes the DLL, the setup program
should delete the DLL's registry entries.

 

Re:pass a function called in a dll to the main program


In article <6hhrko$co...@news.imp.ch>, Michael Thensen <michael.thensen@
nospam.biogate.com> writes

Quote
>hello

>i wrote a dll in witch windows calls a function when a certain event occurs.
>how can i now pass this event and some parameters to my main program when
>this event occurs , how can i handle this event in my main program ?

Michael,

Two methods come to mind:

1) Send a message to you application. You can use wm_user+XXX or
registerwindowsmessage('asdasd') to get the message number, broadcast it
to all applications or send it direct and include some of the data in
the wParam and lParam of the message.

2) You could use a callback function.

HTH
--
Mike

NB - All opinions are my own, not necessarily that of my employer.

Re:pass a function called in a dll to the main program


Quote
Michael Thensen wrote in message <6hhrko$co...@news.imp.ch>...
>i wrote a dll in witch windows calls a function when a certain event
occurs.
>how can i now pass this event and some parameters to my main program
when
>this event occurs , how can i handle this event in my main program ?

My favourite method is storing all parameters, and then PostMessage a
message to the main program, which in turn calls another function in the
dll to find out what really happened.

Note that directly calling an exported function may have unwanted
effects (wrong thread), and SendMessage might put you in a deadlock
situation.

--
Zweitze de Vries
zweitze<at>iname<dot>com
When replying, please adjust reply address

Re:pass a function called in a dll to the main program


In article <6hhrko$co...@news.imp.ch>

Quote
"Michael Thensen" <michael.then...@nospam.biogate.com> wrote:
> hello

> i wrote a dll in witch windows calls a function when a certain event occurs.
> how can i now pass this event and some parameters to my main program when
> this event occurs , how can i handle this event in my main program ?

Use a callback procedure/function.

Best regards, The Chief
--------
Dr. A{*word*73}la A. Olowofoyeku (The African Chief)
Email: la...@keele.ac.uk
Homepage: http://ourworld.compuserve.com/homepages/African_Chief/
Author of: Chief's Installer Pro 4.25 for Win16 and Win32:
ftp://ftp.demon.co.uk/pub/ibmpc/win3/apps/chief/pro/chief425.zip

Other Threads