Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Returning COM Info
Message
General information
Forum:
Visual FoxPro
Category:
COM/DCOM and OLE Automation
Miscellaneous
Thread ID:
00673352
Message ID:
00673365
Views:
24
Try this. It is a slightly modified version of code written by Yuri Abramenkov (yuri@russa.novsu.ac.ru)
*-------------------------------------------------
LPARA cClassName

cClID=fregget('',cClassName+'\CLSID',1)
?"Version: ",fregget('',cClassName+'\Curver',1)

cFilePath=fregget('','CLSID\'+ALLTRIM(cClID)+'\InProcServer32',1)

if EMPTY (cFilePath)
cFilePath=fregget('','CLSID\'+ALLTRIM(cClID)+'\LocalServer32',1)
ENDIF

?"File Path: ", cFilePath
?"File Date: ", fdate(cFilePath,1)

clear dlls
*-------------------------------------
Function fregget
LPARAMETER pName, pKey, pDiv
DECLARE INTEGER RegOpenKey IN Win32API INTEGER, STRING @, INTEGER @
DECLARE INTEGER RegCloseKey IN Win32API INTEGER
DECLARE INTEGER RegQueryValueEx IN Win32API INTEGER, STRING, INTEGER, INTEGER @, STRING @, INTEGER @

Local keyhandle, lcdata, datalen, lcpath

IF LEFT(pKey, 1)='\'
lcpath = SUBSTR(pKey, 2)
ELSE
lcpath = pKey
ENDIF
IF PARA()=2
pDiv=-2147483646
ELSE
DO CASE
CASE pDiv=1
pDiv=-2147483648
CASE pDiv=2
pDiv=-2147483647
CASE pDiv=3
pDiv=-2147483646
CASE pDiv=4
pDiv=-2147483645
OTHERWISE
pDiv=-2147483646
ENDCASE
ENDIF
keyhandle = 0
lcdata = SPACE(256)
datalen = LEN(lcdata)
lctype = 0

= regopenkey(pDiv,lcpath,@keyhandle)
= regqueryvalueex(keyhandle,pName,0,@lctype,@lcdata,@datalen)
= regclosekey(keyhandle)

DO CASE
CASE lctype=1
IF datalen lcdata = LEFT(lcdata, datalen)
ELSE
lcdata = LEFT(lcdata, AT(CHR(0), lcdata)-1)
ENDIF
CASE lctype=4
nn = 0
FOR n = datalen TO 1 STEP -1
nn = nn+ASC(SUBSTR(lcdata, n, 1))*(256^(n-1))
ENDFOR
lcdata = TRANSFORM(nn, "@0")
lcdata = SUBSTR(lcdata, AT('x', lcdata)+1)
ENDCASE
RETURN lcdata



>How do I get the following info about a DLL?
>
>Version
>Path to the DLL
>File Date & Time
>
>Thanks
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform