Hi,

I need to use a struct to get some data from a dll call so I tried the
following but I get a bunch of errors(warnings) from struct.pm about
uninitialized values but the call is successful, ie it does fill and
commit the data to the application.

I am aware that the struct values start out as undef, but the first dll
call is supposed to fill the struct not read it. After the first call
the struct is filled with default values from the application.

I have been looking around the web for pages with good info on struct
usage but havent found much code to look at to see how others have
worked this out.
Any help would be welcome :)

using win32::API 0.40 and perl 5.6.1

here is the code:
### START ###
use strict;
use Win32::API;

my $MDAEMONDLL='C:/Mdaemon/App/Mduser.dll';

## sruct defs
Win32::API::Struct->typedef('MDS_Domain', qw(
   char DomainName[46];
   char IP[21];
   int MaxInactive;
   int MaxMessageSize;
   int MaxDeletedIMAPMessageAge;
   int POP_Throttle;
   int IMAP_Throttle;
   int MultiPOP_Throttle;
   int DomainPOP_Throttle;
   INT InboundSMTP_Throttle;
   INT OutboundSMTP_Throttle;
   char* SupressList;
   char* AdminList;
   INT Flags;
)) or die "Typedef error $!\n";

my $DOM_struct             = Win32::API::Struct->new('MDS_Domain');
#print $DOM_struct->align('auto');
print "DOM Struct size :" . $DOM_struct->sizeof ."\n";


Win32::API->Import ($MDAEMONDLL, 'VOID MD_InitDomainInfo (LPMDS_Domain
Domain,char* Name)');
my $NewDomain='sinza.test';
&MD_InitDomainInfo($DOM_struct,$NewDomain);

### END ###



_______________________________________________
Perl-Win32-Admin mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to