|
com_load_typelib
Loads a Typelib
(PHP 4 >= 4.0.7, PHP 5)
Code Examples / Notes » com_load_typelib04-may-2004 03:18
In case any of you were wondering what com_load_typelib actually DOES, I have found that it loads constants\enums that the COM obeject has defined. The example below is using the Nero COM object (from Nero Burning rom, version 6+). The Nero object defines a bunch of constants, but they can not be used as PHP constants unless you use the mentioned function. So the example below will work just fine: <?php $aNero = new COM("Nero.Nero") or die ("Nero didn't load, too bad"); com_load_typelib("Nero.Nero"); $aNero->GetDrives(NERO_MEDIA_CD); ?> But this one will not, since PHP will return a message saying that the constant is undefined: <?php $aNero = new COM("Nero.Nero") or die ("Nero didn't load, too bad"); $aNero->GetDrives(NERO_MEDIA_CD); ?> This one took me a while to figure out, hope it helps. Also, check out http://www.php.net/manual/en/faq.com.php to find out how to get COM events working in PHP. ojpp
Hello PHP community, I want to help in a problem I found in this COM built-in function: com_load_typelib(), when I executed it in order to open a COM Server process (for example: Word, Excel, etc.) I was in trouble to release the object from memory, I figured it out, this is the solution: Change a configuration in the php.ini: ; autoregister constants of a components typlib on com_load() com.autoregister_typelib = true When com.autoregister_typelib directive is true, PHP parser manage the COM server type library, I hope it helps. richard dot quadling
<?php // Some servers may have an auto timeout, so take as long as you want. set_time_limit(0); // Show all errors, warnings and notices whilst developing. error_reporting(E_ALL); // Used as a placeholder in certain COM functions where no parameter is required. $empty = new VARIANT(); // Load the appropriate type library. com_load_typelib('Word.Application'); // Create an object to use. $word = new COM('word.application') or die('Unable to load Word'); print "Loaded Word, version {$word->Version}\n"; // Open a new document with bookmarks of YourName and YourAge. $word->Documents->Open('C:/Unfilled.DOC'); // Fill in the information from the form. $word->Selection->GoTo(wdGoToBookmark,$empty,$empty,'YourName'); // Note use of wdGoToBookmark, from the typelibrary and the use of $empty. $word->Selection->TypeText($_GET['YourName']); $word->Selection->GoTo(wdGoToBookmark,$empty,$empty,'YourAge'); $word->Selection->TypeText($_GET['YourAge']); // Save it, close word and finish. $word->Documents[1]->SaveAs("C:/{$_GET['YourName']}.doc"); $word->Quit(); $word->Release(); $word = null; print "Word closed.\n"; ?> The example document is ... Hello [Bookmark of YourName], you are [Bookmark of YourAge] years old. and it would be called ... word.php?YourName=Richard%20Quadling&YourAge=35 Regards, Richard. |
Change LanguageCOM DOTNET VARIANT com_addref com_create_guid com_event_sink com_get_active_object com_get com_invoke com_isenum com_load_typelib com_load com_message_pump com_print_typeinfo com_propget com_propput com_propset com_release com_set variant_abs variant_add variant_and variant_cast variant_cat variant_cmp variant_date_from_timestamp variant_date_to_timestamp variant_div variant_eqv variant_fix variant_get_type variant_idiv variant_imp variant_int variant_mod variant_mul variant_neg variant_not variant_or variant_pow variant_round variant_set_type variant_set variant_sub variant_xor |