Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re: Threads and object access

by Nitrox (Chaplain)
on Dec 11, 2002 at 21:22 UTC ( [id://219178]=note: print w/replies, xml ) Need Help??


in reply to Threads and object access

I'd love to post some example code for folks to test but this is part of a ActiveX Control module that I'm creating with PerlCtrl from the Perl Development kit. To make a long story short there is quite a bit of code needed just to get to this point. Add to that the need for the created DLL to be called by a 3rd party VB application. I'll try and create a high-level walkthru:

After the VB application calls CreateObject() on my DLL it calls a subroutine in my code to establish the COM/callback objects. (shortened version below to give a general idea)

1 sub RegCallback { 2 $CB = shift; 3 $HS = $CB->GetInterface(); 4 return; 5 }
After calling this routine $CB contains Win32::OLE=HASH(0x2f1603c) but when trying to call Dumper() on $CB it errors with:

Win32::OLE(0.1601) error 0x80004001: "Not implemented"

$HS contains Win32::OLE=HASH(0x298ccdc) and Dumper() produces:

$VAR1 = \bless( { 'plugin' => undef, 'ThreadID' => 1000, 'NoLog' => 0, 'hwnd' => 3932376, 'DebugMode' => 0, 'EventCount' => 2, 'DeviceCount' => 2, 'LastCommandSelected' => undef, 'SunRise' => '7:02 AM', 'SunSet' => '4:13 PM' }, 'Win32::OLE' );
Adding share($CB) after line 2 allows the Dumper() call to return: $VAR1 = \bless( {}, 'Win32::OLE' ); but then line 3 errors with: Win32::OLE(0.1601): GetOleObject() Not a Win32::OLE object at /PerlApp/Win32/OLE/Lite.pm line 154.

-Nitrox

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://219178]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others about the Monastery: (5)
As of 2024-03-28 16:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found