Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
OLE field
Message
 
À
17/05/2010 02:53:30
Neil Mc Donald
Cencom Systems P/L
The Sun, Australie
Information générale
Forum:
Visual FoxPro
Catégorie:
Gestionnaire d'écran & Écrans
Titre:
Divers
Thread ID:
01464852
Message ID:
01464862
Vues:
63
Neil,

I'm just need to gather information of all ActiveX in the SCX/VCX.

CLSID ("name" of the ActiveX) and then name for all methods, events and properties that hasn't default value. And of course the new values changed by the application developer. If I know this I can then f.ex print a list where are all ActiveX in the SCX/VCX and also all methods, events and properties with their values that has modified or then I can generate a PRG which can generate SCX/VCX (SCX/VCX generator) from the metadata in SCX/VCX file.

I have already a generator which reads all objects in SCX/VCX file and all changed methods, events or properties and generates a PRG file. Then I can run the PRG file which then either generates the original SCX/VCX file or print a list of the structure of SCX/VCX file. It is working 100% if there is no ActiveX in the SCX/VCX because ActiveX name (CLSID) and all changed methods, events and properties are in the OLE field which is crypted BINARY field. So I have to "decrypt" the OLE field to support generator to make it work 100% even if SCX/VCX contains ActiveXs.

I already know (I have made an UDF) how to read CLSID from the OLE field but then I have to know where it is located in the OLE field. I have found that CLSID information can be in different locations. So UDF like DecryptCLSID(StartPosition, (CLSIDEndChr)) won't work if I don't know the StartPosition (CLSID ends in every case with the same end character so I just read from the StartPosition character by character until end character is reached and then I decrypt that string with another UDF). Setting the StartPosition value to 1 and then reading the binary string from 1 to the CLSIDEndChr and then decrypting the string and then looking if the decrypted string has a meaningful value (like MSComctlLib.ListViewCtrl.2) if not then increasing StartPosition with the value 1 (reading, decrypting...) until there is a meaningful value would not work because the generator program has no way to know when it is meaningful unless there is a megalomanic list of ALL possible ActiveXs CLSID value on the market (thousands and thousands) (maybe manually it could work but because generator is automatic without user interaction it would not). Also I have tried to read names of the ActiveX methods, events and properties and their values with the same way I can manually read CLSID value but haven't find any meaningful method, event or property name not to mention any meaningful value of the method, event or property (it could be even that binary value of the CLSID is encrypted differently than method, event or property name/value. I just don't know).

Inside the VFP are all functions how to read OLE field (CLSID, names and values of the methods, events and properties) and then show meaningful ActiveX property window. If VFP can do it there must be a way to make UDFs that mimic the functions VFP has. But making those UDFs you first have to find out how to read and decrypt OLE binary information i.e. what is the StartPosition for CLSID and start position of the names of methods, events and properties (not a clue), what is the EndChr for the CLSID (this I know) and names of the methods, events and properties (not a clue), how to decrypt binary string of the CLSID (this I know) and how to decrypt binary strings of the names for methods, events and properties (not a clue). Then I also have to somehow find meaningful values of methods, events and properties (not a clue).

At the moment I have quite impossible wall to cross (making UDFs that mimics VFP own functions to "decrypt" ActiveX data in the OLE binary field). So I'm looking for the help of anyone who can help me in this quest (I'm sure that misters like Ken Levy or Calvin Hsia or other MS members who has developed VFP, have this information but sadly they haven't bothered to share it).

Arto
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform