FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Saber Metodos de un CREATEOBJECT
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Saber Metodos de un CREATEOBJECT
Posted: Mon May 13, 2013 05:44 AM
Inspeccionando "CDO.Message"

http://www.paulsadowski.com/wsh/cdo.htm

STDCALL dispatch FUNC void QueryInterface( [in] PTR, [out] PTR )
STDCALL dispatch FUNC unsigned long AddRef()
STDCALL dispatch FUNC unsigned long Release()
STDCALL dispatch FUNC void GetTypeInfoCount( [out] PTR )
STDCALL dispatch FUNC void GetTypeInfo( [in] unsigned int, [in] unsigned long, [out] PTR )
STDCALL dispatch FUNC void GetIDsOfNames( [in] PTR, [in] PTR, [in] unsigned int, [in] unsigned long, [out] PTR )
STDCALL dispatch FUNC void Invoke( [in] int, [in] PTR, [in] unsigned long, [in] unsigned short, [in] PTR, [out] PTR, [out] PTR, [out] PTR )
STDCALL dispatch PROPERTYGET BSTR BCC()
STDCALL dispatch PROPERTYPUT void BCC( [in] BSTR )
STDCALL dispatch PROPERTYGET BSTR CC()
STDCALL dispatch PROPERTYPUT void CC( [in] BSTR )
STDCALL dispatch PROPERTYGET BSTR FollowUpTo()
STDCALL dispatch PROPERTYPUT void FollowUpTo( [in] BSTR )
STDCALL dispatch PROPERTYGET BSTR From()
STDCALL dispatch PROPERTYPUT void From( [in] BSTR )
STDCALL dispatch PROPERTYGET BSTR Keywords()
STDCALL dispatch PROPERTYPUT void Keywords( [in] BSTR )
STDCALL dispatch PROPERTYGET VARIANT_BOOL MimeFormatted()
STDCALL dispatch PROPERTYPUT void MimeFormatted( [in] VARIANT_BOOL )
STDCALL dispatch PROPERTYGET BSTR Newsgroups()
STDCALL dispatch PROPERTYPUT void Newsgroups( [in] BSTR )
STDCALL dispatch PROPERTYGET BSTR Organization()
STDCALL dispatch PROPERTYPUT void Organization( [in] BSTR )
STDCALL dispatch PROPERTYGET DATE ReceivedTime()
STDCALL dispatch PROPERTYGET BSTR ReplyTo()
STDCALL dispatch PROPERTYPUT void ReplyTo( [in] BSTR )
STDCALL dispatch PROPERTYGET USERDEFINED DSNOptions()
STDCALL dispatch PROPERTYPUT void DSNOptions( [in] USERDEFINED )
STDCALL dispatch PROPERTYGET DATE SentOn()
STDCALL dispatch PROPERTYGET BSTR Subject()
STDCALL dispatch PROPERTYPUT void Subject( [in] BSTR )
STDCALL dispatch PROPERTYGET BSTR To()
STDCALL dispatch PROPERTYPUT void To( [in] BSTR )
STDCALL dispatch PROPERTYGET BSTR TextBody()
STDCALL dispatch PROPERTYPUT void TextBody( [in] BSTR )
STDCALL dispatch PROPERTYGET BSTR HTMLBody()
STDCALL dispatch PROPERTYPUT void HTMLBody( [in] BSTR )
STDCALL dispatch PROPERTYGET PTR Attachments()
STDCALL dispatch PROPERTYGET BSTR Sender()
STDCALL dispatch PROPERTYPUT void Sender( [in] BSTR )
STDCALL dispatch PROPERTYGET PTR Configuration()
STDCALL dispatch PROPERTYPUT void Configuration( [in] PTR )
STDCALL dispatch PROPERTYPUTREF void Configuration( [in] PTR )
STDCALL dispatch PROPERTYGET VARIANT_BOOL AutoGenerateTextBody()
STDCALL dispatch PROPERTYPUT void AutoGenerateTextBody( [in] VARIANT_BOOL )
STDCALL dispatch PROPERTYGET PTR EnvelopeFields()
STDCALL dispatch PROPERTYGET PTR TextBodyPart()
STDCALL dispatch PROPERTYGET PTR HTMLBodyPart()
STDCALL dispatch PROPERTYGET PTR BodyPart()
STDCALL dispatch PROPERTYGET PTR DataSource()
STDCALL dispatch PROPERTYGET PTR Fields()
STDCALL dispatch PROPERTYGET VARIANT_BOOL MDNRequested()
STDCALL dispatch PROPERTYPUT void MDNRequested( [in] VARIANT_BOOL )
STDCALL dispatch FUNC PTR AddRelatedBodyPart( [in] BSTR, [in] BSTR, [in] USERDEFINED, [optional] BSTR, [optional] BSTR )
STDCALL dispatch FUNC PTR AddAttachment( [in] BSTR, [optional] BSTR, [optional] BSTR )
STDCALL dispatch FUNC void CreateMHTMLBody( [in] BSTR, [defaultvalue] USERDEFINED, [optional] BSTR, [optional] BSTR )
STDCALL dispatch FUNC PTR Forward()
STDCALL dispatch FUNC void Post()
STDCALL dispatch FUNC PTR PostReply()
STDCALL dispatch FUNC PTR Reply()
STDCALL dispatch FUNC PTR ReplyAll()
STDCALL dispatch FUNC void Send()
STDCALL dispatch FUNC PTR GetStream()
STDCALL dispatch FUNC IDispatch GetInterface( [in] BSTR )
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Saber Metodos de un CREATEOBJECT
Posted: Mon May 13, 2013 05:48 AM
Inspeccionando "Microsoft.XmlDom"

STDCALL dispatch FUNC void QueryInterface( [in] PTR, [out] PTR )
STDCALL dispatch FUNC unsigned long AddRef()
STDCALL dispatch FUNC unsigned long Release()
STDCALL dispatch FUNC void GetTypeInfoCount( [out] PTR )
STDCALL dispatch FUNC void GetTypeInfo( [in] unsigned int, [in] unsigned long, [out] PTR )
STDCALL dispatch FUNC void GetIDsOfNames( [in] PTR, [in] PTR, [in] unsigned int, [in] unsigned long, [out] PTR )
STDCALL dispatch FUNC void Invoke( [in] int, [in] PTR, [in] unsigned long, [in] unsigned short, [in] PTR, [out] PTR, [out] PTR, [out] PTR )
STDCALL dispatch PROPERTYGET BSTR nodeName()
STDCALL dispatch PROPERTYGET VARIANT nodeValue()
STDCALL dispatch PROPERTYPUT void nodeValue( [in] VARIANT )
STDCALL dispatch PROPERTYGET USERDEFINED nodeType()
STDCALL dispatch PROPERTYGET PTR parentNode()
STDCALL dispatch PROPERTYGET PTR childNodes()
STDCALL dispatch PROPERTYGET PTR firstChild()
STDCALL dispatch PROPERTYGET PTR lastChild()
STDCALL dispatch PROPERTYGET PTR previousSibling()
STDCALL dispatch PROPERTYGET PTR nextSibling()
STDCALL dispatch PROPERTYGET PTR attributes()
STDCALL dispatch FUNC PTR insertBefore( [in] PTR, [in] VARIANT )
STDCALL dispatch FUNC PTR replaceChild( [in] PTR, [in] PTR )
STDCALL dispatch FUNC PTR removeChild( [in] PTR )
STDCALL dispatch FUNC PTR appendChild( [in] PTR )
STDCALL dispatch FUNC VARIANT_BOOL hasChildNodes()
STDCALL dispatch PROPERTYGET PTR ownerDocument()
STDCALL dispatch FUNC PTR cloneNode( [in] VARIANT_BOOL )
STDCALL dispatch PROPERTYGET BSTR nodeTypeString()
STDCALL dispatch PROPERTYGET BSTR text()
STDCALL dispatch PROPERTYPUT void text( [in] BSTR )
STDCALL dispatch PROPERTYGET VARIANT_BOOL specified()
STDCALL dispatch PROPERTYGET PTR definition()
STDCALL dispatch PROPERTYGET VARIANT nodeTypedValue()
STDCALL dispatch PROPERTYPUT void nodeTypedValue( [in] VARIANT )
STDCALL dispatch PROPERTYGET VARIANT dataType()
STDCALL dispatch PROPERTYPUT void dataType( [in] BSTR )
STDCALL dispatch PROPERTYGET BSTR xml()
STDCALL dispatch FUNC BSTR transformNode( [in] PTR )
STDCALL dispatch FUNC PTR selectNodes( [in] BSTR )
STDCALL dispatch FUNC PTR selectSingleNode( [in] BSTR )
STDCALL dispatch PROPERTYGET VARIANT_BOOL parsed()
STDCALL dispatch PROPERTYGET BSTR namespaceURI()
STDCALL dispatch PROPERTYGET BSTR prefix()
STDCALL dispatch PROPERTYGET BSTR baseName()
STDCALL dispatch FUNC void transformNodeToObject( [in] PTR, [in] VARIANT )
STDCALL dispatch PROPERTYGET PTR doctype()
STDCALL dispatch PROPERTYGET PTR implementation()
STDCALL dispatch PROPERTYGET PTR documentElement()
STDCALL dispatch PROPERTYPUTREF void documentElement( [in] PTR )
STDCALL dispatch FUNC PTR createElement( [in] BSTR )
STDCALL dispatch FUNC PTR createDocumentFragment()
STDCALL dispatch FUNC PTR createTextNode( [in] BSTR )
STDCALL dispatch FUNC PTR createComment( [in] BSTR )
STDCALL dispatch FUNC PTR createCDATASection( [in] BSTR )
STDCALL dispatch FUNC PTR createProcessingInstruction( [in] BSTR, [in] BSTR )
STDCALL dispatch FUNC PTR createAttribute( [in] BSTR )
STDCALL dispatch FUNC PTR createEntityReference( [in] BSTR )
STDCALL dispatch FUNC PTR getElementsByTagName( [in] BSTR )
STDCALL dispatch FUNC PTR createNode( [in] VARIANT, [in] BSTR, [in] BSTR )
STDCALL dispatch FUNC PTR nodeFromID( [in] BSTR )
STDCALL dispatch FUNC VARIANT_BOOL load( [in] VARIANT )
STDCALL dispatch PROPERTYGET int readyState()
STDCALL dispatch PROPERTYGET PTR parseError()
STDCALL dispatch PROPERTYGET BSTR url()
STDCALL dispatch PROPERTYGET VARIANT_BOOL async()
STDCALL dispatch PROPERTYPUT void async( [in] VARIANT_BOOL )
STDCALL dispatch FUNC void abort()
STDCALL dispatch FUNC VARIANT_BOOL loadXML( [in] BSTR )
STDCALL dispatch FUNC void save( [in] VARIANT )
STDCALL dispatch PROPERTYGET VARIANT_BOOL validateOnParse()
STDCALL dispatch PROPERTYPUT void validateOnParse( [in] VARIANT_BOOL )
STDCALL dispatch PROPERTYGET VARIANT_BOOL resolveExternals()
STDCALL dispatch PROPERTYPUT void resolveExternals( [in] VARIANT_BOOL )
STDCALL dispatch PROPERTYGET VARIANT_BOOL preserveWhiteSpace()
STDCALL dispatch PROPERTYPUT void preserveWhiteSpace( [in] VARIANT_BOOL )
STDCALL dispatch PROPERTYPUT void onreadystatechange( [in] VARIANT )
STDCALL dispatch PROPERTYPUT void ondataavailable( [in] VARIANT )
STDCALL dispatch PROPERTYPUT void ontransformnode( [in] VARIANT )
STDCALL dispatch PROPERTYGET PTR namespaces()
STDCALL dispatch PROPERTYGET VARIANT schemas()
STDCALL dispatch PROPERTYPUTREF void schemas( [in] VARIANT )
STDCALL dispatch FUNC PTR validate()
STDCALL dispatch FUNC void setProperty( [in] BSTR, [in] VARIANT )
STDCALL dispatch FUNC VARIANT getProperty( [in] BSTR )
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Saber Metodos de un CREATEOBJECT
Posted: Mon May 13, 2013 05:51 AM
Inspeccionando "iTunes.Application"

STDCALL dispatch FUNC void QueryInterface( [in] PTR, [out] PTR )
STDCALL dispatch FUNC unsigned long AddRef()
STDCALL dispatch FUNC unsigned long Release()
STDCALL dispatch FUNC void GetTypeInfoCount( [out] PTR )
STDCALL dispatch FUNC void GetTypeInfo( [in] unsigned int, [in] unsigned long, [out] PTR )
STDCALL dispatch FUNC void GetIDsOfNames( [in] PTR, [in] PTR, [in] unsigned int, [in] unsigned long, [out] PTR )
STDCALL dispatch FUNC void Invoke( [in] int, [in] PTR, [in] unsigned long, [in] unsigned short, [in] PTR, [out] PTR, [out] PTR, [out] PTR )
STDCALL dispatch FUNC void BackTrack()
STDCALL dispatch FUNC void FastForward()
STDCALL dispatch FUNC void NextTrack()
STDCALL dispatch FUNC void Pause()
STDCALL dispatch FUNC void Play()
STDCALL dispatch FUNC void PlayFile( [in] BSTR )
STDCALL dispatch FUNC void PlayPause()
STDCALL dispatch FUNC void PreviousTrack()
STDCALL dispatch FUNC void Resume()
STDCALL dispatch FUNC void Rewind()
STDCALL dispatch FUNC void Stop()
STDCALL dispatch FUNC PTR ConvertFile( [in] BSTR )
STDCALL dispatch FUNC PTR ConvertFiles( [in] PTR )
STDCALL dispatch FUNC PTR ConvertTrack( [in] PTR )
STDCALL dispatch FUNC PTR ConvertTracks( [in] PTR )
STDCALL dispatch FUNC VARIANT_BOOL CheckVersion( [in] int, [in] int )
STDCALL dispatch FUNC PTR GetITObjectByID( [in] int, [in] int, [in] int, [in] int )
STDCALL dispatch FUNC PTR CreatePlaylist( [in] BSTR )
STDCALL dispatch FUNC void OpenURL( [in] BSTR )
STDCALL dispatch FUNC void GotoMusicStoreHomePage()
STDCALL dispatch FUNC void UpdateIPod()
STDCALL dispatch FUNC void Authorize( [in] int, [in] PTR, [in] PTR )
STDCALL dispatch FUNC void Quit()
STDCALL dispatch PROPERTYGET PTR Sources()
STDCALL dispatch PROPERTYGET PTR Encoders()
STDCALL dispatch PROPERTYGET PTR EQPresets()
STDCALL dispatch PROPERTYGET PTR Visuals()
STDCALL dispatch PROPERTYGET PTR Windows()
STDCALL dispatch PROPERTYGET int SoundVolume()
STDCALL dispatch PROPERTYPUT void SoundVolume( [in] int )
STDCALL dispatch PROPERTYGET VARIANT_BOOL Mute()
STDCALL dispatch PROPERTYPUT void Mute( [in] VARIANT_BOOL )
STDCALL dispatch PROPERTYGET USERDEFINED PlayerState()
STDCALL dispatch PROPERTYGET int PlayerPosition()
STDCALL dispatch PROPERTYPUT void PlayerPosition( [in] int )
STDCALL dispatch PROPERTYGET PTR CurrentEncoder()
STDCALL dispatch PROPERTYPUT void CurrentEncoder( [in] PTR )
STDCALL dispatch PROPERTYGET VARIANT_BOOL VisualsEnabled()
STDCALL dispatch PROPERTYPUT void VisualsEnabled( [in] VARIANT_BOOL )
STDCALL dispatch PROPERTYGET VARIANT_BOOL FullScreenVisuals()
STDCALL dispatch PROPERTYPUT void FullScreenVisuals( [in] VARIANT_BOOL )
STDCALL dispatch PROPERTYGET USERDEFINED VisualSize()
STDCALL dispatch PROPERTYPUT void VisualSize( [in] USERDEFINED )
STDCALL dispatch PROPERTYGET PTR CurrentVisual()
STDCALL dispatch PROPERTYPUT void CurrentVisual( [in] PTR )
STDCALL dispatch PROPERTYGET VARIANT_BOOL EQEnabled()
STDCALL dispatch PROPERTYPUT void EQEnabled( [in] VARIANT_BOOL )
STDCALL dispatch PROPERTYGET PTR CurrentEQPreset()
STDCALL dispatch PROPERTYPUT void CurrentEQPreset( [in] PTR )
STDCALL dispatch PROPERTYGET BSTR CurrentStreamTitle()
STDCALL dispatch PROPERTYGET BSTR CurrentStreamURL()
STDCALL dispatch PROPERTYGET PTR BrowserWindow()
STDCALL dispatch PROPERTYGET PTR EQWindow()
STDCALL dispatch PROPERTYGET PTR LibrarySource()
STDCALL dispatch PROPERTYGET PTR LibraryPlaylist()
STDCALL dispatch PROPERTYGET PTR CurrentTrack()
STDCALL dispatch PROPERTYGET PTR CurrentPlaylist()
STDCALL dispatch PROPERTYGET PTR SelectedTracks()
STDCALL dispatch PROPERTYGET BSTR Version()
STDCALL dispatch FUNC void SetOptions( [in] int )
STDCALL dispatch FUNC PTR ConvertFile2( [in] BSTR )
STDCALL dispatch FUNC PTR ConvertFiles2( [in] PTR )
STDCALL dispatch FUNC PTR ConvertTrack2( [in] PTR )
STDCALL dispatch FUNC PTR ConvertTracks2( [in] PTR )
STDCALL dispatch PROPERTYGET VARIANT_BOOL AppCommandMessageProcessingEnabled()
STDCALL dispatch PROPERTYPUT void AppCommandMessageProcessingEnabled( [in] VARIANT_BOOL )
STDCALL dispatch PROPERTYGET VARIANT_BOOL ForceToForegroundOnDialog()
STDCALL dispatch PROPERTYPUT void ForceToForegroundOnDialog( [in] VARIANT_BOOL )
STDCALL dispatch FUNC PTR CreateEQPreset( [in] BSTR )
STDCALL dispatch FUNC PTR CreatePlaylistInSource( [in] BSTR, [in] PTR )
STDCALL dispatch FUNC void GetPlayerButtonsState( [out] PTR, [out] PTR, [out] PTR )
STDCALL dispatch FUNC void PlayerButtonClicked( [in] USERDEFINED, [in] int )
STDCALL dispatch PROPERTYGET VARIANT_BOOL CanSetShuffle( [in] PTR )
STDCALL dispatch PROPERTYGET VARIANT_BOOL CanSetSongRepeat( [in] PTR )
STDCALL dispatch PROPERTYGET PTR ConvertOperationStatus()
STDCALL dispatch FUNC void SubscribeToPodcast( [in] BSTR )
STDCALL dispatch FUNC void UpdatePodcastFeeds()
STDCALL dispatch FUNC PTR CreateFolder( [in] BSTR )
STDCALL dispatch FUNC PTR CreateFolderInSource( [in] BSTR, [in] PTR )
STDCALL dispatch PROPERTYGET VARIANT_BOOL SoundVolumeControlEnabled()
STDCALL dispatch PROPERTYGET BSTR LibraryXMLPath()
STDCALL dispatch PROPERTYGET int ITObjectPersistentIDHigh( [in] PTR )
STDCALL dispatch PROPERTYGET int ITObjectPersistentIDLow( [in] PTR )
STDCALL dispatch FUNC void GetITObjectPersistentIDs( [in] PTR, [out] PTR, [out] PTR )
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Saber Metodos de un CREATEOBJECT
Posted: Mon May 13, 2013 05:53 AM
Inspeccionando "Microsoft.Update.Searcher"

STDCALL dispatch FUNC void QueryInterface( [in] PTR, [out] PTR )
STDCALL dispatch FUNC unsigned long AddRef()
STDCALL dispatch FUNC unsigned long Release()
STDCALL dispatch FUNC void GetTypeInfoCount( [out] PTR )
STDCALL dispatch FUNC void GetTypeInfo( [in] unsigned int, [in] unsigned long, [out] PTR )
STDCALL dispatch FUNC void GetIDsOfNames( [in] PTR, [in] PTR, [in] unsigned int, [in] unsigned long, [out] PTR )
STDCALL dispatch FUNC void Invoke( [in] int, [in] PTR, [in] unsigned long, [in] unsigned short, [in] PTR, [out] PTR, [out] PTR, [out] PTR )
STDCALL dispatch PROPERTYGET VARIANT_BOOL CanAutomaticallyUpgradeService()
STDCALL dispatch PROPERTYPUT void CanAutomaticallyUpgradeService( [in] VARIANT_BOOL )
STDCALL dispatch PROPERTYGET BSTR ClientApplicationID()
STDCALL dispatch PROPERTYPUT void ClientApplicationID( [in] BSTR )
STDCALL dispatch PROPERTYGET VARIANT_BOOL IncludePotentiallySupersededUpdates()
STDCALL dispatch PROPERTYPUT void IncludePotentiallySupersededUpdates( [in] VARIANT_BOOL )
STDCALL dispatch PROPERTYGET USERDEFINED ServerSelection()
STDCALL dispatch PROPERTYPUT void ServerSelection( [in] USERDEFINED )
STDCALL dispatch FUNC PTR BeginSearch( [in] BSTR, [in] IUnknown, [in] VARIANT )
STDCALL dispatch FUNC PTR EndSearch( [in] PTR )
STDCALL dispatch FUNC BSTR EscapeString( [in] BSTR )
STDCALL dispatch FUNC PTR QueryHistory( [in] int, [in] int )
STDCALL dispatch FUNC PTR Search( [in] BSTR )
STDCALL dispatch PROPERTYGET VARIANT_BOOL Online()
STDCALL dispatch PROPERTYPUT void Online( [in] VARIANT_BOOL )
STDCALL dispatch FUNC int GetTotalHistoryCount()
STDCALL dispatch PROPERTYGET BSTR ServiceID()
STDCALL dispatch PROPERTYPUT void ServiceID( [in] BSTR )
STDCALL dispatch PROPERTYGET VARIANT_BOOL IgnoreDownloadPriority()
STDCALL dispatch PROPERTYPUT void IgnoreDownloadPriority( [in] VARIANT_BOOL )
STDCALL dispatch PROPERTYGET USERDEFINED SearchScope()
STDCALL dispatch PROPERTYPUT void SearchScope( [in] USERDEFINED )
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Saber Metodos de un CREATEOBJECT
Posted: Mon May 13, 2013 05:55 AM
Inspeccionando "WScript.Network"

STDCALL virtual FUNC HRESULT AddWindowsPrinterConnection( [in] BSTR, [defaultvalue] BSTR, [defaultvalue] BSTR )
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Saber Metodos de un CREATEOBJECT
Posted: Mon May 13, 2013 07:57 AM
Y aqui finalmente una funci贸n que permite revisar todos los objetos OLE disponibles en el ordenador e inspeccionar el que queramos :-)





Aqui todo el c贸digo fuente:

adolfo.prg
Code (fw): Select all Collapse
// Docs: <!-- m --><a class="postlink" href="http://msdn.microsoft.com/en-us/library/cc237619.aspx">http://msdn.microsoft.com/en-us/library/cc237619.aspx</a><!-- m -->

#include "FiveWin.ch"

#define 聽HKEY_CLASSES_ROOT 聽 聽 聽 2147483648

function Main()

聽 聽local nHandle, nHandle2, n := 1 
聽 聽local aValues := {}, cValue

聽 聽if RegOpenKey( HKEY_CLASSES_ROOT, "CLSID", @nHandle ) == 0
聽 聽 聽 while RegEnumKey( nHandle, n++, @cValue ) == 0
聽 聽 聽 聽 聽if RegOpenKey( HKEY_CLASSES_ROOT, "CLSID\" + cValue, @nHandle2 ) == 0
聽 聽 聽 聽 聽 聽 if RegQueryValue( nHandle2, "ProgID", @cValue ) != 2 
聽 聽 聽 聽 聽 聽 聽 聽if ! Empty( cValue ) 
聽 聽 聽 聽 聽 聽 聽 聽 聽 AAdd( aValues, cValue )
聽 聽 聽 聽 聽 聽 聽 聽endif
聽 聽 聽 聽 聽 聽 endif 聽 聽 聽
聽 聽 聽 聽 聽 聽 RegCloseKey( nHandle2 )
聽 聽 聽 聽 聽endif
聽 聽 聽 end 聽 聽 聽
聽 聽 聽 RegCloseKey( nHandle ) 聽 
聽 聽endif 聽 

聽 聽XBROWSER ASort( aValues ) TITLE "Available OLE classes" ;
聽 聽 聽 SELECT OleInspect( oBrw:aCols[ 1 ]:Value ) ;
聽 聽 聽 VALID MsgYesNo( "want to end ?" )

return nil
聽 聽
function OleInspect( cProgID )

聽 聽local o, aVars, aFuncs, cFuncs := ""

聽 聽try
聽 聽 聽 o := CreateObject( cProgID )
聽 聽catch
聽 聽 聽 MsgAlert( "can't create the object" )
聽 聽 聽 return nil
聽 聽end 聽 

聽 聽if GetTypeInfoCount( o:hObj ) == 1 // There is info

聽 聽 聽 if Len( aVars := GetTypeVars( o:hObj ) ) > 0
聽 聽 聽 聽 聽XBROWSER ASort( aVars ) TITLE "Variables"
聽 聽 聽 endif
聽 聽 聽 
聽 聽 聽 if Len( aFuncs := GetTypeFuncs( o:hObj ) ) > 0
聽 聽 聽 聽 聽XBROWSER ASort( aFuncs ) TITLE "Functions for " + cProgID
聽 聽 聽 聽 聽// AEval( aFuncs, { | c | cFuncs += c + CRLF } )
聽 聽 聽 聽 聽// MemoEdit( cFuncs )
聽 聽 聽 endif 聽 
聽 聽endif

return nil

#pragma BEGINDUMP

#include <hbapi.h>
#include "c:\harbour\contrib\hbwin\hbwinole.h"

HB_FUNC( GETTYPEINFOCOUNT )
{
聽 聽IDispatch * pDisp = hb_oleParam( 1 );
聽 聽HRESULT 聽 聽 lOleError;
聽 聽UINT 聽 聽 聽 聽ctinfo;
聽 聽
聽 聽lOleError = HB_VTBL( pDisp )->GetTypeInfoCount( HB_THIS( pDisp ), &ctinfo );
聽 聽
聽 聽hb_retnl( ( lOleError == S_OK ) ? ctinfo: -1 ); 
} 聽 聽 

static LPSTR WideToAnsi( LPWSTR cWide )
{
聽 聽WORD wLen;
聽 聽LPSTR cString = NULL;

聽 聽wLen = WideCharToMultiByte( CP_ACP, 0, cWide, -1, cString, 0, NULL, NULL );

聽 聽cString = ( LPSTR ) hb_xgrab( wLen );
聽 聽WideCharToMultiByte( CP_ACP, 0, cWide, -1, cString, wLen, NULL, NULL );

聽 聽return cString;
}
聽 聽
HB_FUNC( GETTYPEVARS )
{
聽 聽IDispatch * pDisp = hb_oleParam( 1 );
聽 聽ITypeInfo * pInfo;
聽 聽TYPEATTR * pta;
聽 聽int i;

聽 聽if( HB_VTBL( pDisp )->GetTypeInfo( HB_THIS( pDisp ), 0, 0, &pInfo ) != S_OK )
聽 聽 聽 return;

聽 聽if( HB_VTBL( pInfo )->GetTypeAttr( HB_THIS( pInfo ), &pta ) != S_OK )
聽 聽 聽 return;

聽 聽hb_reta( pta->cVars );

聽 聽for( i = 0; i < pta->cVars; i++ )
聽 聽{
聽 聽 聽 BSTR bsName;
聽 聽 聽 VARDESC * pVar;
聽 聽 聽 char * pszName; 
聽 聽
聽 聽 聽 if( HB_VTBL( pInfo )->GetVarDesc( HB_THIS( pInfo ), i, &pVar ) != S_OK )
聽 聽 聽 聽 聽break;

聽 聽 聽 if( HB_VTBL( pInfo )->GetDocumentation( HB_THIS( pInfo ), pVar->memid, &bsName, NULL, NULL, NULL ) != S_OK )
聽 聽 聽 聽 聽break;

聽 聽 聽 pszName = WideToAnsi( bsName );
聽 聽 聽 hb_storvclen( pszName, strlen( pszName ), -1, i + 1 ); 
聽 聽 聽 hb_xfree( ( void * ) pszName );
聽 聽 聽 
聽 聽 聽 HB_VTBL( pInfo )->ReleaseVarDesc( HB_THIS( pInfo ), pVar );
聽 聽}

聽 聽HB_VTBL( pInfo )->Release( HB_THIS( pInfo ) );
} 聽 聽 
聽 聽
static char * GetType( unsigned int iType )
{
聽 聽char * pszType;
聽 聽
聽 聽switch( iType )
聽 聽{
聽 聽 聽 case VT_PTR:
聽 聽 聽 聽 聽 聽pszType = "PTR";
聽 聽 聽 聽 聽 聽break;
聽 聽 聽 聽 聽 聽
聽 聽 聽 case VT_ARRAY:
聽 聽 聽 聽 聽 聽pszType = "ARRAY";
聽 聽 聽 聽 聽 聽break;

聽 聽 聽 case VT_CARRAY:
聽 聽 聽 聽 聽 聽pszType = "CARRAY";
聽 聽 聽 聽 聽 聽break;

聽 聽 聽 case VT_USERDEFINED:
聽 聽 聽 聽 聽 聽pszType = "USERDEFINED";
聽 聽 聽 聽 聽 聽break;

聽 聽 聽 case VT_I2: 
聽 聽 聽 聽 聽 聽pszType = "short";
聽 聽 聽 聽 聽 聽break;
聽 聽 聽 聽 聽 聽
聽 聽 聽 case VT_I4: 
聽 聽 聽 聽 聽 聽pszType = "int";
聽 聽 聽 聽 聽 聽break;
聽 聽 聽 聽 聽 聽
聽 聽 聽 case VT_R4: 
聽 聽 聽 聽 聽 聽pszType = "float";
聽 聽 聽 聽 聽 聽break;
聽 聽 聽 聽 聽 聽
聽 聽 聽 case VT_R8: 
聽 聽 聽 聽 聽 聽pszType = "double";
聽 聽 聽 聽 聽 聽break;
聽 聽 聽 聽 聽 聽
聽 聽 聽 case VT_CY: 
聽 聽 聽 聽 聽 聽pszType = "CY";
聽 聽 聽 聽 聽 聽break;
聽 聽 聽 聽 聽 聽
聽 聽 聽 case VT_DATE: 
聽 聽 聽 聽 聽 聽pszType = "DATE";
聽 聽 聽 聽 聽 聽break;
聽 聽 聽 聽 聽 聽
聽 聽 聽 case VT_BSTR: 
聽 聽 聽 聽 聽 聽pszType = "BSTR";
聽 聽 聽 聽 聽 聽break;
聽 聽 聽 聽 聽 聽
聽 聽 聽 case VT_DECIMAL: 
聽 聽 聽 聽 聽 聽pszType = "DECIMAL";
聽 聽 聽 聽 聽 聽break;
聽 聽 聽 聽 聽 聽
聽 聽 聽 case VT_DISPATCH: 
聽 聽 聽 聽 聽 聽pszType = "IDispatch";
聽 聽 聽 聽 聽 聽break;
聽 聽 聽 聽 聽 聽
聽 聽 聽 case VT_ERROR: 
聽 聽 聽 聽 聽 聽pszType = "SCODE";
聽 聽 聽 聽 聽 聽break;
聽 聽 聽 聽 聽 聽
聽 聽 聽 case VT_BOOL: 
聽 聽 聽 聽 聽 聽pszType = "VARIANT_BOOL";
聽 聽 聽 聽 聽 聽break;
聽 聽 聽 聽 聽 聽
聽 聽 聽 case VT_VARIANT: 
聽 聽 聽 聽 聽 聽pszType = "VARIANT";
聽 聽 聽 聽 聽 聽break;
聽 聽 聽 聽 聽 聽
聽 聽 聽 case VT_UNKNOWN: 
聽 聽 聽 聽 聽 聽pszType = "IUnknown";
聽 聽 聽 聽 聽 聽break;
聽 聽 聽 聽 聽 聽
聽 聽 聽 case VT_UI1: 
聽 聽 聽 聽 聽 聽pszType = "BYTE";
聽 聽 聽 聽 聽 聽break;
聽 聽 聽 聽 聽 聽
聽 聽 聽 case VT_I1: 
聽 聽 聽 聽 聽 聽pszType = "char";
聽 聽 聽 聽 聽 聽break;
聽 聽 聽 聽 聽 聽
聽 聽 聽 case VT_UI2: 
聽 聽 聽 聽 聽 聽pszType = "unsigned short";
聽 聽 聽 聽 聽 聽break;
聽 聽 聽 聽 聽 聽
聽 聽 聽 case VT_UI4: 
聽 聽 聽 聽 聽 聽pszType = "unsigned long";
聽 聽 聽 聽 聽 聽break;
聽 聽 聽 聽 聽 聽
聽 聽 聽 case VT_I8: 
聽 聽 聽 聽 聽 聽pszType = "__int64";
聽 聽 聽 聽 聽 聽break;
聽 聽 聽 聽 聽 聽
聽 聽 聽 case VT_UI8: 
聽 聽 聽 聽 聽 聽pszType = "unsigned __int64";
聽 聽 聽 聽 聽 聽break;
聽 聽 聽 聽 聽 聽
聽 聽 聽 case VT_INT: 
聽 聽 聽 聽 聽 聽pszType = "int";
聽 聽 聽 聽 聽 聽break;
聽 聽 聽 聽 聽 聽
聽 聽 聽 case VT_UINT: 
聽 聽 聽 聽 聽 聽pszType = "unsigned int";
聽 聽 聽 聽 聽 聽break;
聽 聽 聽 聽 聽 聽
聽 聽 聽 case VT_HRESULT: 
聽 聽 聽 聽 聽 聽pszType = "HRESULT";
聽 聽 聽 聽 聽 聽break;
聽 聽 聽 聽 聽 聽
聽 聽 聽 case VT_VOID: 
聽 聽 聽 聽 聽 聽pszType = "void";
聽 聽 聽 聽 聽 聽break;
聽 聽 聽 聽 聽 聽
聽 聽 聽 case VT_LPSTR: 
聽 聽 聽 聽 聽 聽pszType = "char *";
聽 聽 聽 聽 聽 聽break;
聽 聽 聽 聽 聽 聽
聽 聽 聽 case VT_LPWSTR: 
聽 聽 聽 聽 聽 聽pszType = "wchar *";
聽 聽 聽 聽 聽 聽break;

聽 聽 聽 default:
聽 聽 聽 聽 聽 聽pszType = "Error";
聽 聽 聽 聽 聽 聽break; 聽 聽 聽 聽 聽 聽 聽
聽 聽}
聽 聽return pszType;
} 聽 

static char * GetFuncKind( unsigned int iType )
{
聽 聽char * pszType;
聽 聽
聽 聽switch( iType )
聽 聽{
聽 聽 聽 case FUNC_PUREVIRTUAL:
聽 聽 聽 聽 聽 聽pszType = "virtual";
聽 聽 聽 聽 聽 聽break;

聽 聽 聽 case FUNC_STATIC:
聽 聽 聽 聽 聽 聽pszType = "static";
聽 聽 聽 聽 聽 聽break;
聽 聽 聽 聽 聽 聽
聽 聽 聽 case FUNC_DISPATCH:
聽 聽 聽 聽 聽 聽pszType = "dispatch";
聽 聽 聽 聽 聽 聽break;
聽 聽 聽 聽 聽 聽
聽 聽 聽 default:
聽 聽 聽 聽 聽 聽pszType = "error";
聽 聽 聽 聽 聽 聽break;
聽 聽}
聽 聽
聽 聽return pszType;
} 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 

static char * GetInvKind( unsigned int iType )
{
聽 聽char * pszType;
聽 聽
聽 聽switch( iType )
聽 聽{
聽 聽 聽 case INVOKE_FUNC:
聽 聽 聽 聽 聽 聽pszType = "FUNC";
聽 聽 聽 聽 聽 聽break;

聽 聽 聽 case INVOKE_PROPERTYGET:
聽 聽 聽 聽 聽 聽pszType = "PROPERTYGET";
聽 聽 聽 聽 聽 聽break;
聽 聽 聽 聽 聽 聽
聽 聽 聽 case INVOKE_PROPERTYPUT:
聽 聽 聽 聽 聽 聽pszType = "PROPERTYPUT";
聽 聽 聽 聽 聽 聽break;
聽 聽 聽 聽 聽 聽
聽 聽 聽 case INVOKE_PROPERTYPUTREF:
聽 聽 聽 聽 聽 聽pszType = "PROPERTYPUTREF";
聽 聽 聽 聽 聽 聽break; 聽 聽 
聽 聽 聽 聽 聽 聽
聽 聽 聽 default:
聽 聽 聽 聽 聽 聽pszType = "error";
聽 聽 聽 聽 聽 聽break;
聽 聽}
聽 聽
聽 聽return pszType;
} 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 

static char * GetCallConv( unsigned int iType )
{
聽 聽char * pszType;
聽 聽
聽 聽switch( iType )
聽 聽{
聽 聽 聽 case CC_CDECL:
聽 聽 聽 聽 聽 聽pszType = "CDECL";
聽 聽 聽 聽 聽 聽break;

聽 聽 聽 case CC_PASCAL:
聽 聽 聽 聽 聽 聽pszType = "PASCAL";
聽 聽 聽 聽 聽 聽break;
聽 聽 聽 聽 聽 聽
聽 聽 聽 case CC_STDCALL:
聽 聽 聽 聽 聽 聽pszType = "STDCALL";
聽 聽 聽 聽 聽 聽break;
聽 聽 聽 聽 聽 聽
聽 聽 聽 default:
聽 聽 聽 聽 聽 聽pszType = "error";
聽 聽 聽 聽 聽 聽break;
聽 聽}
聽 聽
聽 聽return pszType;
} 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 

static char * GetParamType( USHORT iType )
{
聽 聽char * pszType = "error";
聽 聽
聽 聽if( iType & PARAMFLAG_NONE )
聽 聽 聽 pszType = "";
聽 聽 聽 
聽 聽if( iType & PARAMFLAG_FIN )
聽 聽 聽 pszType = "[in]";
聽 聽 聽 
聽 聽if( iType & PARAMFLAG_FOUT )
聽 聽 聽 pszType = "[out]";

聽 聽if( iType & PARAMFLAG_FLCID )
聽 聽 聽 pszType = "[lcid]";

聽 聽if( iType & PARAMFLAG_FRETVAL )
聽 聽 聽 pszType = "[retval]";

聽 聽if( iType & PARAMFLAG_FOPT )
聽 聽 聽 pszType = "[optional]";

聽 聽if( iType & PARAMFLAG_FHASDEFAULT )
聽 聽 聽 pszType = "[defaultvalue]";

聽 聽if( iType & PARAMFLAG_FHASCUSTDATA )
聽 聽 聽 pszType = "[custom]";
聽 聽
聽 聽return pszType;
} 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 
聽 聽
HB_FUNC( GETTYPEFUNCS )
{
聽 聽IDispatch * pDisp = hb_oleParam( 1 );
聽 聽ITypeInfo * pInfo;
聽 聽HRESULT 聽 聽 lOleError;
聽 聽TYPEATTR * pta;
聽 聽int i;

聽 聽if( HB_VTBL( pDisp )->GetTypeInfo( HB_THIS( pDisp ), 0, 0, &pInfo ) != S_OK )
聽 聽{
聽 聽 聽 hb_ret();
聽 聽 聽 return;
聽 聽} 聽 

聽 聽if( HB_VTBL( pInfo )->GetTypeAttr( HB_THIS( pInfo ), &pta ) != S_OK )
聽 聽{
聽 聽 聽 hb_ret();
聽 聽 聽 return;
聽 聽} 聽 

聽 聽hb_reta( pta->cFuncs );

聽 聽for( i = 0; i < pta->cFuncs; i++ )
聽 聽{
聽 聽 聽 BSTR bsName;
聽 聽 聽 FUNCDESC * pfd;
聽 聽 聽 char * pszName; 
聽 聽 聽 char * pszType;
聽 聽 聽 char buffer[ 700 ];
聽 聽 聽 int n;
聽 聽
聽 聽 聽 if( HB_VTBL( pInfo )->GetFuncDesc( HB_THIS( pInfo ), i, &pfd ) != S_OK )
聽 聽 聽 聽 聽break;

聽 聽 聽 if( HB_VTBL( pInfo )->GetDocumentation( HB_THIS( pInfo ), pfd->memid, &bsName, NULL, NULL, NULL ) != S_OK )
聽 聽 聽 聽 聽break;

聽 聽 聽 pszName = WideToAnsi( bsName );

聽 聽 聽 sprintf( buffer, "%s %s %s %s %s(", GetCallConv( pfd->callconv ), 
聽 聽 聽 聽 聽 聽 聽 聽GetFuncKind( pfd->funckind ), GetInvKind( pfd->invkind ), 
聽 聽 聽 聽 聽 聽 聽 聽GetType( pfd->elemdescFunc.tdesc.vt ), pszName );
聽 聽 聽 
聽 聽 聽 for( n = 0; n < pfd->cParams; n++ )
聽 聽 聽 {
聽 聽 聽 聽 聽if( n != 0 )
聽 聽 聽 聽 聽 聽 strcat( buffer, ", " );
聽 聽 聽 聽 聽else
聽 聽 聽 聽 聽 聽 strcat( buffer, " " ); 聽 
聽 聽 聽 聽 聽
聽 聽 聽 聽 聽strcat( buffer, GetParamType( pfd->lprgelemdescParam[ n ].paramdesc.wParamFlags ) );
聽 聽 聽 聽 聽strcat( buffer, " " );
聽 聽 聽 聽 聽strcat( buffer, GetType( pfd->lprgelemdescParam[ n ].tdesc.vt ) );
聽 聽 聽 聽 聽
聽 聽 聽 聽 聽if( n == pfd->cParams - 1 )
聽 聽 聽 聽 聽 聽 strcat( buffer, " " );
聽 聽 聽 } 聽 聽

聽 聽 聽 strcat( buffer, ")" );
聽 聽 聽 hb_storvclen( buffer, strlen( buffer ), -1, i + 1 ); 
聽 聽 聽 hb_xfree( ( void * ) pszName );
聽 聽 聽 HB_VTBL( pInfo )->ReleaseFuncDesc( HB_THIS( pInfo ), pfd );
聽 聽}

聽 聽HB_VTBL( pInfo )->Release( HB_THIS( pInfo ) );
} 聽 聽 

#pragma ENDDUMP


He ampliado el comando XBROWSER de FWH para que admita VALID:
Code (fw): Select all Collapse
#xcommand XBROWSER [<uData>] ;
             [ TITLE <cTitle> ] ;
             [ <autosort:AUTOSORT> ] ;
             [ SETUP <fnSetUp> ] ;
             [ COLUMNS <aCols,...> ] ;
             [ SELECT <fnSelect> ] ;
             [ <excel: CALC> ];
             [ <fastedit: FASTEDIT> ];
             [ VALID <uValid> ] ;
      => ;
         XBrowse( [<uData>], [<cTitle>], [<.autosort.>], ;
            [\{|oBrw|<fnSetUp>\}], [\{<aCols>\}], ;
            [\{|oBrw,oCol|<fnSelect>\}],!<.excel.>, <.fastedit.>, [\{|oBrw|<uValid>\}] )


y modificado asi su c贸digo:
Code (fw): Select all Collapse
function XBrowse( uData, cTitle, lAutoSort, bSetUp, aCols, bSelect, lExcel, lFastEdit, bValid )

   ...

   ACTIVATE DIALOG oDlg ;
      ON INIT FitSizes( oBrw, bInit ) ;
      VALID If( ! Empty( bValid ), Eval( bValid ), .T. )
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Saber Metodos de un CREATEOBJECT
Posted: Mon May 13, 2013 08:07 AM
Y aqui esta el EXE ya construido y el c贸digo fuente:

https://code.google.com/p/fivewin-contributions/downloads/detail?name=olebrow.zip
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Saber Metodos de un CREATEOBJECT
Posted: Mon May 13, 2013 09:04 AM

Antonio
Esto es ya el complemento que estaba buscando
Muchas gracias
Saludos

Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noci贸n del tiempo

El secreto de la felicidad no est谩 en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Saber Metodos de un CREATEOBJECT
Posted: Mon May 13, 2013 09:07 AM

He encontrado una clase OLE que tiene variables (y no tiene m茅todos):

local o := CreateObject( "OldFont." )

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Saber Metodos de un CREATEOBJECT
Posted: Mon May 13, 2013 09:12 AM
Puede ser que en el futuro podamos obtener alguna informaci贸n adicional en base a este ejemplo:

http://www.adp-gmbh.ch/win/tlb/
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 883
Joined: Tue Oct 11, 2005 11:57 AM
Re: Saber Metodos de un CREATEOBJECT
Posted: Mon May 13, 2013 01:23 PM

Antonio

Gracias nuevamente, he revisado los obj com disponibles, y hay unos que ni siquiera sabia que existian.
Por ej. los de CorelDraw y los de Photoshop.

Voy a instalar Sketchup y DraftSight, que son 2 CAD absolutamente gratuitos y que leen archivos DWG, a ver que tan factibles son de usar a traves de CreateObject, mi intencion es solo poder leer, mostrar e imprimir cada dwg a traves de mi aplicacion, ya que el dise帽o de los originales se haran en CAD 12. Con eso no debo instalar autocad en cada pc y centralizo su creacion.

Gracias.. hay harto para jugar

Desde Chile
Adolfo

;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Asus TUF F15, 32GB Ram, 2 * 1 TB NVME M.2, GTX 1650
Posts: 883
Joined: Tue Oct 11, 2005 11:57 AM
Re: Saber Metodos de un CREATEOBJECT
Posted: Mon May 13, 2013 01:42 PM
Actualizo.

DraftSight, bueno, completo, leyo los DWG de una, pero No es un COM
Sketchup... muy basico, intuitivo, y si es un OBJ COM, pero muy pocos metodos, al parecer INVOKE y QUERYINTERFACE podrian hacer la pega

STDCALL dispatch FUNC unsigned long AddRef()
STDCALL dispatch FUNC unsigned long Release()
STDCALL dispatch FUNC void GetIDsOfNames( [in] PTR, [in] PTR, [in] unsigned int, [in] unsigned long, [out] PTR )
STDCALL dispatch FUNC void GetTypeInfo( [in] unsigned int, [in] unsigned long, [out] PTR )
STDCALL dispatch FUNC void GetTypeInfoCount( [out] PTR )
STDCALL dispatch FUNC void Invoke( [in] int, [in] PTR, [in] unsigned long, [in] unsigned short, [in] PTR, [out] PTR, [out] PTR, [out] PTR )
STDCALL dispatch FUNC void QueryInterface( [in] PTR, [out] PTR )

Probare a ver que pasa, pero si solo es para leer, mostrar e imprimir, puede que sirva.

Saludos
Desde Chile
Adolfo
;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Asus TUF F15, 32GB Ram, 2 * 1 TB NVME M.2, GTX 1650
Posts: 1303
Joined: Tue Jul 21, 2009 08:12 AM
Re: Saber Metodos de un CREATEOBJECT
Posted: Mon May 13, 2013 01:56 PM

Antonio,

Una utilidad fant谩stica, enhorabuena.

Una duda, 驴por qu茅 xBrowse requiere freeimage.dll?. No est谩s usando ninguna imagen.

Un saludo

Muchas gracias. Many thanks.



Un saludo, Best regards,



Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producci贸n]



Implementando MSVC 2010, FWH64 y ADO.



Abandonando uso xHarbour y SQLRDD.
Posts: 205
Joined: Fri Oct 07, 2005 05:07 PM
Re: Saber Metodos de un CREATEOBJECT
Posted: Mon May 13, 2013 10:11 PM

Buenas a todos.

Seria posible saberr el nombre de fichero origem.

Saludos/regards

RenOmaS



skype: americo.balboa
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Saber Metodos de un CREATEOBJECT
Posted: Tue May 14, 2013 08:02 AM
Adolfo,

Todos las classes OLE proporcionan unos m茅todos b谩sicos:

La clase inicial es IUnknown y proporciona estos m茅todos:
AddRef(), QueryInterface() y Release(). Que basicamente sirven para: incrementar el contador de uso, crear un objeto IDispatch para interrogar al objeto y destruir el objeto.

http://msdn.microsoft.com/en-us/library/windows/desktop/ms680509(v=vs.85).aspx

A continuaci贸n est谩n los m茅todos de la Clase IDispatch que aporta:
GetTypeInfoCount(), GetTypeInfo(), GetIDsOfNames() y Invoke().

http://msdn.microsoft.com/es-es/library/windows/desktop/dd318520(v=vs.85).aspx

En tu ejemplo, solo estas listando los m茅todos de estas dos clases contenidas en el objeto, por lo que el objeto en si no ofrece nada excepto esa funcionalidad b谩sica. Espero que esta explicaci贸n ayude a entender mejor los objetos OLE :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com