![]() |
Chilkat • HOME • Android™ • AutoIt • C • C# • C++ • Chilkat2-Python • CkPython • Classic ASP • DataFlex • Delphi DLL • Go • Java • Node.js • Objective-C • PHP Extension • Perl • PowerBuilder • PowerShell • PureBasic • Ruby • SQL Server • Swift • Tcl • Unicode C • Unicode C++ • VB.NET • VBScript • Visual Basic 6.0 • Visual FoxPro • Xojo Plugin
(PHP ActiveX) Async Methods Returning an ObjectDemonstrates how to call an asynchronous method that returns an object. This example reads email from a POP3 server using the Async versions of the Chilkat methods.
<?php // All Chilkat classes can be unlocked at once at the beginning of a program // by calling UnlockBundle. It requires a Bundle unlock code. // For versions of Chilkat < 10.0.0, use new COM('Chilkat_9_5_0.Chilkat.Global') $chilkatGlob = new COM("Chilkat.Global"); $success = $chilkatGlob->UnlockBundle('Anything for 30-day trial.'); if ($success != 1) { print $chilkatGlob->LastErrorText . "\n"; exit; } // For versions of Chilkat < 10.0.0, use new COM('Chilkat_9_5_0.Chilkat.MailMan') $mailman = new COM("Chilkat.MailMan"); // Set the POP3 server's hostname $mailman->MailHost = 'pop.someMailServer.com'; // Set the POP3 login/password and any other requirements.. $mailman->PopUsername = 'myLogin'; $mailman->PopPassword = 'myPassword'; $mailman->PopSsl = 1; $mailman->MailPort = 995; // Connect to the POP3 server: // task is a Chilkat.Task $task = $mailman->Pop3BeginSessionAsync(); if ($mailman->LastMethodSuccess == 0) { print $mailman->LastErrorText . "\n"; exit; } // Start the background task. $success = $task->Run(); if (!$success) { print $task->LastErrorText . "\n"; exit; } // Wait for the POP3 connect task to finish. // The 1/0 returned by Wait applies to the Wait method call, not the task. $maxWaitMs = 30000; $success = $task->Wait($maxWaitMs); if (!$success or ($task->StatusInt != 7) or ($task->TaskSuccess != 1)) { if (!$success) { // The task.LastErrorText applies to the Wait method call. print $task->LastErrorText . "\n"; } else { // The ResultErrorText applies to the underlying task method call (i.e. the Pop3BeginSession) print $task->Status . "\n"; print $task->ResultErrorText . "\n"; } exit; } // Get the number of messages in the mailbox. // task is a Chilkat.Task $task = $mailman->GetMailboxCountAsync(); // To keep the example short, we'll skip handling failures. // The failures would be handled in the same way as shown above. $success = $task->Run(); $success = $task->Wait($maxWaitMs); $numMessages = $task->GetResultInt(); if ($numMessages == 0) { exit; } // For versions of Chilkat < 10.0.0, use new COM('Chilkat_9_5_0.Chilkat.Email') $email = new COM("Chilkat.Email"); for ($i = 1; $i <= $numMessages; $i++) { // task is a Chilkat.Task $task = $mailman->FetchByMsgnumAsync($i); if ($mailman->LastMethodSuccess == 0) { print $mailman->LastErrorText . "\n"; exit; } $success = $task->Run(); $success = $task->Wait($maxWaitMs); if (!$success or ($task->StatusInt != 7) or ($task->TaskSuccess != 1)) { if (!$success) { // The task.LastErrorText applies to the Wait method call. print $task->LastErrorText . "\n"; } else { // The ResultErrorText applies to the underlying task method call (i.e. the FetchByMsgnum) print $task->Status . "\n"; print $task->ResultErrorText . "\n"; } exit; } // Each Chilkat object that can be a return value of an asynchronous task will // have a method named LoadTaskResult. The object returned in the underlying // asynchronous method call is retrieved by calling LoadTaskResult. // To say it another way: The application will provide a pre-existing object of // the desired return type (in this case it is an email object). This object is // loaded by calling LoadTaskResult. $success = $email->LoadTaskResult($task); if (!$success) { print $email->LastErrorText . "\n"; exit; } else { print $email->From . ': ' . $email->Subject . '\n' . "\n"; } } ?> |
||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.