Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked

Re: Threads and object access

by Nitrox (Chaplain)
on Dec 11, 2002 at 21:22 UTC ( #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/ line 154.


Log In?

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

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (3)
As of 2023-06-08 21:02 GMT
Find Nodes?
    Voting Booth?
    How often do you go to conferences?

    Results (35 votes). Check out past polls.