TheSwamp
Code Red => AutoLISP (Vanilla / Visual) => Topic started by: MP on November 10, 2007, 12:38:55 AM
-
... a work in progress.
And I need your help to do it.
Based on this thread (http://www.theswamp.org/index.php?topic=19857.0) I've a bunch of LISP code written to achieve the title's namesake and it's working quite nicely, but it's all for naught if the average machine doesn't have the type library info dll installed and registered, so I need you to run a quick test. Although my reading suggests tlbinf32.dll should be on any PC that's had VB or VBA installed (it's what used to populate the object browser [F2]) I hate assuming.
Can you run the code snip that follows and tell me what it prints to the screen?
(defun c:TliTest ( / _GetTliCLSID _FindDLL _RegSvr32 _Main )
(defun _GetTliCLSID ( )
(vl-registry-read
(strcat
"HKEY_CLASSES_ROOT\\"
"TLI.TLIApplication\\"
"CLSID"
)
)
)
(defun _FindDLL ( dll / path windir )
(if
(vl-some
'(lambda (x) (setq path (findfile x)))
(list
dll
(strcat
(setq windir (getenv "WinDir"))
"\\System\\"
dll
)
(strcat windir "\\System32\\" dll)
)
)
path
)
)
(defun _RegSvr32 ( dll / cmd path match )
(vl-some
'(lambda (x) (startapp x (strcat "\"" dll "\" /s")))
(list
(setq cmd "regsvr32.exe")
(strcat
(setq path (getenv "WinDir"))
"\\System\\"
cmd
)
(strcat path "\\System32\\" cmd)
)
)
)
(defun _Main ( / clsid dllpath )
(if (setq clsid (_GetTliCLSID))
(princ (strcat "Found CLSID: " clsid))
(if (setq dllpath (_FindDll "tlbinf32.dll"))
(progn
(princ (strcat "Found DLL: " dllpath))
(_RegSvr32 dllpath)
(if (setq clsid (_GetTliCLSID))
(princ (strcat "Found CLSID: " clsid))
(princ "Doh! DLL registration failed.")
)
)
(princ "Better write a better _FindDLL MP!")
)
)
(princ)
)
(_Main)
)
Also, if you could answer these riveting questions --
1. What version of Windows?
2. What version of AutoCAD?
3. Have you ever run the VBAIDE?
4. What path on your machine hosts tlbinf32.dll?
5. Do you have Visual Studio 6 installed on an active drive?
ABUNDANT THANKS FOR YOUR HELP.
:)
-
Found CLSID: {8B21775E-717D-11CE-AB5B-D41203C10000}
added :
FileVersion: 1.1.97.82
buildDate: February 23, 2004
-
mine prints nothing. i do have the file you are talking about
-
Found CLSID: {8B21775E-717D-11CE-AB5B-D41203C10000}
added :
FileVersion: 1.1.97.82
buildDate: February 23, 2004
Thanks Kerry, greatly appreciated. Mine's the same version but a day earlier (22). ??
mine prints nothing. i do have the file you are talking about
Thanks for trying VovKa. Couple questions --
1. What version of Windows?
2. What version of AutoCAD?
3. Have you ever run the VBAIDE?
4. What path on your machine hosts tlbinf32.dll?
Thanks folks, appreciate your participation.
:)
Note to self: Write a more robust version of FindDLL.
-
Found CLSID: {8B21775E-717D-11CE-AB5B-D41203C10000}
-
... a work in progress.
And I need your help to do it.
Based on this thread (http://www.theswamp.org/index.php?topic=19857.0) I've a bunch of LISP code written to achieve the title's namesake and it's working quite nicely, but it's all for naught if the average machine doesn't have the type library info dll installed and registered, so I need you to run a quick test. Although my reading suggests tlbinf32.dll should be on any PC that's had VB or VBA installed (it's what used to populate the object browser [F2]) I hate assuming.
Can you run the code snip that follows and tell me what it prints to the screen?
_$ (c:tlitest)
Better write a better _FindDLL MP!
And this with Visual Studio 2005 Pro installed and running with the object browser open. I also run VBA regularly.
When I first found the tlbinf32.dll information, I wondered if I could count on it being installed on other machines - I appreciate your research.
-
And this with Visual Studio 2005 Pro installed and running with the object browser open. I also run VBA regularly.
That's weird. Couple questions Mike --
1. What version of Windows?
2. What version of AutoCAD?
3. Have you ever run the VBAIDE?
4. What path on your machine hosts tlbinf32.dll?
When I first found the tlbinf32.dll information, I wondered if I could count on it being installed on other machines - I appreciate your research.
My pleasure sir, isn't great we have a place like the swamp to collaborate? Three cheers to Mark Thomas, woot!
Thanks for pitching in Mike.
:)
-
Thanks for trying VovKa. Couple questions --
1. What version of Windows?
2. What version of AutoCAD?
3. Have you ever run the VBAIDE?
4. What path on your machine hosts tlbinf32.dll?
first of all, sorry MP, a missed a very important word in my first post, the word "not" :)
should be: "i do NOT have the file you are talking about"
if this still matters, i use w2k sp4, Autocad 2004 with Map enabled, and i've run VBAIDE and it's OK
-
Found CLSID: {8B21775E-717D-11CE-AB5B-D41203C10000}
-
Good morning Michael.
File not found!
1. What version of Windows? 2000 SP4
2. What version of AutoCAD? 2K 2K4 2K6
3. Have you ever run the VBAIDE? Yes- in all versions, but only to open
4. What path on your machine hosts tlbinf32.dll? None
FYI I have Visual Basic Installed on my D Drive which is disconnected at this time.
If that matters at all.
-
Hi MP,
Here are my results from running c:tlitest:
Command: TLITEST
Better write a better _FindDLL MP!
Command:
My PC:
Windows XP
AutoCAD 2007 SP1
Windows search did not find file tlbinf32.dll
HTH
Steve
-
Hmmm ....
Group A (yeah)
MP
Kerry
Chuck
Dave
Daniel
Group B (nay)
VovKa
Mike Weaver
CAB
Steve
I'm going to take a wild stab here and guess that Group A has Visual Studio 6 (or Visual BASIC 6) installed on an active drive and that Group B does not.
Can you folks confirm?
Also, if I can confirm tlbinf32.dll is a fully distributable file by Microsoft would you folks that don't have it be ok with a program creating it and registering it? Or would you prefer a link to it so you can install it and register it? I'm leaning towards the latter myself.
Thanks for your participation folks.
:)
Edit: Added Daniel, and it looks like the Visual Studio 6 guess thing might be a reasonable guess.
-
Found CLSID: {8B21775E-717D-11CE-AB5B-D41203C10000}
Windows XP, AC08, VS (6) 2008, Never touched VBA
Found tlbinf32.dll in system folder
Edit: for installing; install the complete package.
-
For anyone just joining this thread, the questions --
1. What version of Windows?
2. What version of AutoCAD?
3. Have you ever run the VBAIDE?
4. If found, what path on your machine hosts tlbinf32.dll?
5. Do you have Visual Studio 6 installed on an active drive?
:)
PS: Thanks to latest folks: CAB, Daniel and Steve.
-
For anyone just joining this thread, the questions --
1. What version of Windows?XP Pro, Service Pack 2
2. What version of AutoCAD?2006, vanilla, Service Pack 1
3. Have you ever run the VBAIDE?Yes
4. If found, what path on your machine hosts tlbinf32.dll?Not found
5. Do you have Visual Studio 6 installed on an active drive?No. but I have Visual Studio 2005 (version 8.0.5)
:)
PS: Thanks to latest folks: CAB, Daniel and Steve.
-
...Snip
Also, if I can confirm tlbinf32.dll is a fully distributable file by Microsoft would you folks that don't have it be ok with a program creating it and registering it? Or would you prefer a link to it so you can install it and register it? I'm leaning towards the latter myself.
Thanks for your participation folks.
:)
Edit: Added Daniel, and it looks like the Visual Studio 6 guess thing might be a reasonable guess.
I would prefer a link to install and register.
You've got to love the swamp!
-
For anyone just joining this thread, the questions --
1. What version of Windows? XP Home SP 2
2. What version of AutoCAD? 2004-2007, LDD 2005, C3D 2008
3. Have you ever run the VBAIDE? yes
4. If found, what path on your machine hosts tlbinf32.dll? c:\windows\system32
5. Do you have Visual Studio 6 installed on an active drive? VB6, VS 2005 + some of the Express IDE's
-
I would prefer a link to install and register.
Mike, I've spent over an hour scanning MS's (no tlbinf32.dll download available) site and another 1/2 hour + googleling like crazy. Though I can find lots of sites that offer the dll none that I feel 100% recommending. :?
You've got to love the swamp!
Indeed! :lol:
-
For anyone just joining this thread, the questions --
1. What version of Windows? XP Home SP 2
2. What version of AutoCAD? 2004-2007, LDD 2005, C3D 2008
3. Have you ever run the VBAIDE? yes
4. If found, what path on your machine hosts tlbinf32.dll? c:\windows\system32
5. Do you have Visual Studio 6 installed on an active drive? VB6, VS 2005 + some of the Express IDE's
Thanks Dave. Pretty much seals it for me -- those that have the dll can attribute it to a VS/VB6 install or a VB authored program that references said dll and includes it in a setup.
-
i have a distribution package of Visual Basic 6.0, TLBINF32.DLL is there. i copied it and registered.
and i got Found CLSID: {8B21775E-717D-11CE-AB5B-D41203C10000}
-
Thanks VovKa. Hope to be able to share some decent code by weekend's end.
:)
-
Well .... interrogation via TLBINF32.DLL doesn't appear to be missing anything:
Selecting a simple line object:
Properties:
TLBINF32.DLL Interrogation VLAX-DUMP-OBJECT
("Angle" 0.430894) Angle (RO) = 0.430894
("Application" #<VLA-OBJECT IAcadApplication 00d73d3c>) Application (RO) = #<VLA-OBJECT IAcadApplication 00d73d3c>
("Color" 256) -
("Database" #<VLA-OBJECT IAcadDatabase 0bc4ffd4>) -
("Delta" (1155.15 531.026 0.0)) Delta (RO) = (1155.15 531.026 0.0)
("Document" #<VLA-OBJECT IAcadDocument 01c35fc8>) Document (RO) = #<VLA-OBJECT IAcadDocument 01c35fc8>
("EndPoint" (2069.81 1103.29 0.0)) EndPoint = (2069.81 1103.29 0.0)
("EntityName" "AcDbLine") -
("EntityType" 19) -
("Handle" "1AD") Handle (RO) = "1AD"
("HasExtensionDictionary" 0) HasExtensionDictionary (RO) = 0
("Hyperlinks" #<VLA-OBJECT IAcadHyperlinks 0bc8398c>) Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 0bc8486c>
("Layer" "0") Layer = "0"
("Length" 1271.36) Length (RO) = 1271.36
("Linetype" "ByLayer") Linetype = "ByLayer"
("LinetypeScale" 1.0) LinetypeScale = 1.0
("Lineweight" -1) Lineweight = -1
("Material" "ByLayer") Material = "ByLayer"
("Normal" (0.0 0.0 1.0)) Normal = (0.0 0.0 1.0)
("ObjectID" 2130322280) ObjectID (RO) = 2130322280
("ObjectName" "AcDbLine") ObjectName (RO) = "AcDbLine"
("OwnerID" 2130316536) OwnerID (RO) = 2130316536
("PlotStyleName" "ByLayer") PlotStyleName = "ByLayer"
("StartPoint" (914.661 572.261 0.0)) StartPoint = (914.661 572.261 0.0)
("Thickness" 0.0) Thickness = 0.0
("TrueColor" #<VLA-OBJECT IAcadAcCmColor 0bc61de0>) TrueColor = #<VLA-OBJECT IAcadAcCmColor 0bc61e40>
("Visible" -1) Visible = -1
Methods:
TLBINF32.DLL Interrogation VLAX-DUMP-OBJECT
("AddRef" 0) -
("ArrayPolar" 3) ArrayPolar (3)
("ArrayRectangular" 6) ArrayRectangular (6)
("Copy" 0) Copy ()
("Delete" 0) Delete ()
("Erase" 0) -
("GetBoundingBox" 2) GetBoundingBox (2)
("GetExtensionDictionary" 0) GetExtensionDictionary ()
("GetIDsOfNames" 5) -
("GetTypeInfo" 3) -
("GetTypeInfoCount" 1) -
("GetXData" 3) GetXData (3)
("Highlight" 1) Highlight (1)
("IntersectWith" 2) IntersectWith (2)
("Invoke" 8) -
("Mirror" 2) Mirror (2)
("Mirror3D" 3) Mirror3D (3)
("Move" 2) Move (2)
("Offset" 1) Offset (1)
("QueryInterface" 2) -
("Release" 0) -
("Rotate" 2) Rotate (2)
("Rotate3D" 3) Rotate3D (3)
("ScaleEntity" 2) ScaleEntity (2)
("SetXData" 2) SetXData (2)
("TransformBy" 1) TransformBy (1)
("Update" 0) Update ()
Couple things surprised me, like what's up with color?
Next up: Flag hidden properties / methods.
:)
-
For anyone just joining this thread, the questions --
1. What version of Windows? Windows XP
2. What version of AutoCAD? 2007 sp1 (vanilla)
3. Have you ever run the VBAIDE? Yes, every day. Well almost every day : )
4. If found, what path on your machine hosts tlbinf32.dll? Not found. However, Windows sometimes fails to find files I know are on my system.
5. Do you have Visual Studio 6 installed on an active drive? I have Visual C++ 2005 Express Edition
:)
PS: Thanks to latest folks: CAB, Daniel and Steve.
You're welcome.
-
I'm willing to test when I get to work. Here is a pic showing how hard it is to read the blue text on a dark background. :wink:
-
I'm willing to test when I get to work. Here is a pic showing how hard it is to read the blue text on a dark background. :wink:
Sounds great Tim. PS, changed the color just for you.
-
Next up: Flag hidden properties / methods.
Done.
PROPERTIES
("Angle" 0.430894)
("Application" #<VLA-OBJECT IAcadApplication 00d73d3c>)
("Color" 256 HIDDEN)
("Database" #<VLA-OBJECT IAcadDatabase 0bc4ffd4> HIDDEN)
("Delta" (1155.15 531.026 0.0))
("Document" #<VLA-OBJECT IAcadDocument 01c35fc8>)
("EndPoint" (2069.81 1103.29 0.0))
("EntityName" "AcDbLine" HIDDEN)
("EntityType" 19 HIDDEN)
("Handle" "1AD")
("HasExtensionDictionary" 0)
("Hyperlinks" #<VLA-OBJECT IAcadHyperlinks 0bc83b4c>)
("Layer" "0")
("Length" 1271.36)
("Linetype" "ByLayer")
("LinetypeScale" 1.0)
("Lineweight" -1)
("Material" "ByLayer")
("Normal" (0.0 0.0 1.0))
("ObjectID" 2130322280)
("ObjectName" "AcDbLine")
("OwnerID" 2130316536)
("PlotStyleName" "ByLayer")
("StartPoint" (914.661 572.261 0.0))
("Thickness" 0.0)
("TrueColor" #<VLA-OBJECT IAcadAcCmColor 0bc624a0>)
("Visible" -1)
METHODS
("AddRef" 0)
("ArrayPolar" 3)
("ArrayRectangular" 6)
("Copy" 0)
("Delete" 0)
("Erase" 0 HIDDEN)
("GetBoundingBox" 2)
("GetExtensionDictionary" 0)
("GetIDsOfNames" 5)
("GetTypeInfo" 3)
("GetTypeInfoCount" 1)
("GetXData" 3)
("Highlight" 1)
("IntersectWith" 2)
("Invoke" 8)
("Mirror" 2)
("Mirror3D" 3)
("Move" 2)
("Offset" 1)
("QueryInterface" 2)
("Release" 0)
("Rotate" 2)
("Rotate3D" 3)
("ScaleEntity" 2)
("SetXData" 2)
("TransformBy" 1)
("Update" 0)
Now what ... hmmm ... oh yeah, argument names / types / optional flags :)
-
'Color' property might not show up when you use 'dump' on the object, but you can use it. I have used it plenty of times instead of going through the 'TrueColor' object.
I'm willing to test when I get to work. Here is a pic showing how hard it is to read the blue text on a dark background. :wink:
Sounds great Tim. PS, changed the color just for you.
I just highlight the post so I can see it, but I just thought I would point it out since you did on my post. :mrgreen:
-
'Color' property might not show up when you use 'dump' on the object, but you can use it. I have used it plenty of times instead of going through the 'TrueColor' object.
Hidden doesn't mean you can't use it (as you've noted) -- I've used hidden members for years in Visual BASIC (when in the Object Browser right click and select "Show hidden members"; ipso facto). However, one should be mindful that hidden means it shouldn't be used blithely, there may be valid reasons members are hidden including, but not limited to planned obsolescence.
I just highlight the post so I can see it, but I just thought I would point it out since you did on my post.
Ha! Got me, I forgot (the ol' sponge doesn't hold as much as it once did)!
:)
-
Ha, arguments list is now licked. Also determined if a property is read-only.
PROPERTIES
("Angle" 0.430894 READONLY)
("Application" #<VLA-OBJECT IAcadApplication 00d73d3c> READONLY)
("Color" 256 HIDDEN)
("Database" #<VLA-OBJECT IAcadDatabase 0bc4ffd4> READONLY HIDDEN)
("Delta" (1155.15 531.026 0.0) READONLY)
("Document" #<VLA-OBJECT IAcadDocument 01c35fc8> READONLY)
("EndPoint" (2069.81 1103.29 0.0))
("EntityName" "AcDbLine" READONLY HIDDEN)
("EntityType" 19 READONLY HIDDEN)
("Handle" "1AD" READONLY)
("HasExtensionDictionary" 0 READONLY)
("Hyperlinks" #<VLA-OBJECT IAcadHyperlinks 0bc83bbc> READONLY)
("Layer" "0")
("Length" 1271.36 READONLY)
("Linetype" "ByLayer")
("LinetypeScale" 1.0)
("Lineweight" -1)
("Material" "ByLayer")
("Normal" (0.0 0.0 1.0))
("ObjectID" 2130322280 READONLY)
("ObjectName" "AcDbLine" READONLY)
("OwnerID" 2130316536 READONLY)
("PlotStyleName" "ByLayer")
("StartPoint" (914.661 572.261 0.0))
("Thickness" 0.0)
("TrueColor" #<VLA-OBJECT IAcadAcCmColor 0bc624a0>)
("Visible" -1)
METHODS
("AddRef" 0)
("ArrayPolar" 3 ("NumberOfObjects" "AngleToFill" "CenterPoint"))
("ArrayRectangular" 6 ("NumberOfRows" "NumberOfColumns" "NumberOfLevels" "DistBetweenRows" "DistBetweenCols" "DistBetweenLevels"))
("Copy" 0)
("Delete" 0)
("Erase" 0 HIDDEN)
("GetBoundingBox" 2 ("MinPoint" "MaxPoint"))
("GetExtensionDictionary" 0)
("GetIDsOfNames" 5 ("riid" "rgszNames" "cNames" "lcid" "rgdispid"))
("GetTypeInfo" 3 ("itinfo" "lcid" "pptinfo"))
("GetTypeInfoCount" 1 ("pctinfo"))
("GetXData" 3 ("AppName" "XDataType" "XDataValue"))
("Highlight" 1 ("HighlightFlag"))
("IntersectWith" 2 ("IntersectObject" "option"))
("Invoke" 8 ("dispidMember" "riid" "lcid" "wFlags" "pdispparams" "pvarResult" "pexcepinfo" "puArgErr"))
("Mirror" 2 ("Point1" "Point2"))
("Mirror3D" 3 ("Point1" "Point2" "point3"))
("Move" 2 ("FromPoint" "ToPoint"))
("Offset" 1 ("Distance"))
("QueryInterface" 2 ("riid" "ppvObj"))
("Release" 0)
("Rotate" 2 ("BasePoint" "RotationAngle"))
("Rotate3D" 3 ("Point1" "Point2" "RotationAngle"))
("ScaleEntity" 2 ("BasePoint" "ScaleFactor"))
("SetXData" 2 ("XDataType" "XDataValue"))
("TransformBy" 1 ("TransformationMatrix"))
("Update" 0)
Hmmm, now what ... :lol:
-
Hmmm, now what ...
Argument types and flags (like optional).
Yes, I'm talking to myself.
:P
-
Added argument types:
PROPERTIES
("Angle" 0.430894 READONLY)
("Application" #<VLA-OBJECT IAcadApplication 00d73d3c> READONLY)
("Color" 256 HIDDEN)
("Database" #<VLA-OBJECT IAcadDatabase 0bc4ffd4> READONLY HIDDEN)
("Delta" (1155.15 531.026 0.0) READONLY)
("Document" #<VLA-OBJECT IAcadDocument 01c35fc8> READONLY)
("EndPoint" (2069.81 1103.29 0.0))
("EntityName" "AcDbLine" READONLY HIDDEN)
("EntityType" 19 READONLY HIDDEN)
("Handle" "1AD" READONLY)
("HasExtensionDictionary" 0 READONLY)
("Hyperlinks" #<VLA-OBJECT IAcadHyperlinks 0bc83fe4> READONLY)
("Layer" "0")
("Length" 1271.36 READONLY)
("Linetype" "ByLayer")
("LinetypeScale" 1.0)
("Lineweight" -1)
("Material" "ByLayer")
("Normal" (0.0 0.0 1.0))
("ObjectID" 2130322280 READONLY)
("ObjectName" "AcDbLine" READONLY)
("OwnerID" 2130316536 READONLY)
("PlotStyleName" "ByLayer")
("StartPoint" (914.661 572.261 0.0))
("Thickness" 0.0)
("TrueColor" #<VLA-OBJECT IAcadAcCmColor 0bc63190>)
("Visible" -1)
METHODS
("AddRef" 0)
("ArrayPolar" 3 (("NumberOfObjects" INT) ("AngleToFill" R8) ("CenterPoint" variant)))
("ArrayRectangular" 6 (("NumberOfRows" INT) ("NumberOfColumns" INT) ("NumberOfLevels" INT) ("DistBetweenRows" R8) ("DistBetweenCols" R8) ("DistBetweenLevels" R8)))
("Copy" 0)
("Delete" 0)
("Erase" 0 HIDDEN)
("GetBoundingBox" 2 (("MinPoint" variant) ("MaxPoint" variant)))
("GetExtensionDictionary" 0)
("GetIDsOfNames" 5 (("riid" EMPTY) ("rgszNames" I1) ("cNames" UINT) ("lcid" UI4) ("rgdispid" I4)))
("GetTypeInfo" 3 (("itinfo" UINT) ("lcid" UI4) ("pptinfo" VOID)))
("GetTypeInfoCount" 1 (("pctinfo" UINT)))
("GetXData" 3 (("AppName" BSTR) ("XDataType" variant) ("XDataValue" variant)))
("Highlight" 1 (("HighlightFlag" BOOL)))
("IntersectWith" 2 (("IntersectObject" DISPATCH) ("option" EMPTY)))
("Invoke" 8 (("dispidMember" I4) ("riid" EMPTY) ("lcid" UI4) ("wFlags" UI2) ("pdispparams" EMPTY) ("pvarResult" variant) ("pexcepinfo" EMPTY) ("puArgErr" UINT)))
("Mirror" 2 (("Point1" variant) ("Point2" variant)))
("Mirror3D" 3 (("Point1" variant) ("Point2" variant) ("point3" variant)))
("Move" 2 (("FromPoint" variant) ("ToPoint" variant)))
("Offset" 1 (("Distance" R8)))
("QueryInterface" 2 (("riid" EMPTY) ("ppvObj" VOID)))
("Release" 0)
("Rotate" 2 (("BasePoint" variant) ("RotationAngle" R8)))
("Rotate3D" 3 (("Point1" variant) ("Point2" variant) ("RotationAngle" R8)))
("ScaleEntity" 2 (("BasePoint" variant) ("ScaleFactor" R8)))
("SetXData" 2 (("XDataType" variant) ("XDataValue" variant)))
("TransformBy" 1 (("TransformationMatrix" variant)))
("Update" 0)
On to the optional flag ... :lol:
-
By any chance had you planned on throwing these into an OpenDCL Grid :-)
the potential looks pretty spiffy Michael !
-
By any chance had you planned on throwing these into an OpenDCL Grid :-)
the potential looks pretty spiffy Michael !
Ye bastid, had to give away the surprise dincha?
:pissed:
(Listview is more appropriate me thinks).
-
By any chance had you planned on throwing these into an OpenDCL Grid :-)
the potential looks pretty spiffy Michael !
Ye bastid, had to give away the surprise dincha?
:pissed:
(Listview is more appropriate me thinks).
Oooops ... :oops:
yep, Listview may be better ..
-
Oooops ... :oops:
Ha, no worries, I mean it would be the logical conclusion given me history no?
:)
-
Command: tlitest
Better write a better _FindDLL MP!
Windows XP SP2 with all the latest bloatware.
Visual Studio 2005 - did have Vis Studio 2003 and Visual Studio .NET and Visual Studio 6 on here but removed.
AutoCAD's 2006, 2007 and 2008
Run VBA in all of them...I think that's all you need.
-
Command: tlitest
Better write a better _FindDLL MP!
Windows XP SP2 with all the latest bloatware.
Visual Studio 2005 - did have Vis Studio 2003 and Visual Studio .NET and Visual Studio 6 on here but removed.
AutoCAD's 2006, 2007 and 2008
Run VBA in all of them...I think that's all you need.
Thanks Glenn. That latter tidbit would sure be nice, but no way I can test -- all my pcs, including work, have VB6 Enterprise installed.
:)
-
Update, licked the optional flag --
PROPERTIES
(NAME VALUE VISIBILITY ACCESS)
("Active" -1 VISIBLE READONLY)
("ActiveDimStyle" #<VLA-OBJECT IAcadDimStyle 0bc56194> VISIBLE READONLY)
("ActiveLayer" #<VLA-OBJECT IAcadLayer 0bc560f4> VISIBLE READONLY)
("ActiveLayout" #<VLA-OBJECT IAcadLayout 0bc55b54> VISIBLE READONLY)
("ActiveLinetype" #<VLA-OBJECT IAcadLineType 0bc56004> VISIBLE READONLY)
("ActiveMaterial" #<VLA-OBJECT IAcadMaterial 0bc55e74> VISIBLE READONLY)
("ActivePViewport" #<VLA-OBJECT IAcadPViewport2 0bc75ae4> VISIBLE READONLY)
("ActiveSelectionSet" #<VLA-OBJECT IAcadSelectionSet 0be2d6ac> VISIBLE READONLY)
("ActiveSpace" 0 VISIBLE READONLY)
("ActiveTextStyle" #<VLA-OBJECT IAcadTextStyle 0bc56054> VISIBLE READONLY)
("ActiveUCS" "<Error: AutoCAD: Null object ID>" VISIBLE READONLY)
("ActiveViewport" "<Error: AutoCAD: No active viewport in paperspace>" VISIBLE READONLY)
("Application" #<VLA-OBJECT IAcadApplication 00d73d3c> VISIBLE READONLY)
("Blocks" #<VLA-OBJECT IAcadBlocks 0bc559c4> VISIBLE READONLY)
("Database" #<VLA-OBJECT IAcadDatabase 0bc4ffd4> VISIBLE READONLY)
("Dictionaries" #<VLA-OBJECT IAcadDictionaries 0bc55ba4> VISIBLE READONLY)
("DimStyles" #<VLA-OBJECT IAcadDimStyles 0bc55c94> VISIBLE READONLY)
("ElevationModelSpace" 0.0 VISIBLE READONLY)
("ElevationPaperSpace" 0.0 VISIBLE READONLY)
("FileDependencies" #<VLA-OBJECT IAcadFileDependencies 0bc4c59c> VISIBLE READONLY)
("FullName" "" VISIBLE READONLY)
("Groups" #<VLA-OBJECT IAcadGroups 0bc55fb4> VISIBLE READONLY)
("HWND" 1575628 VISIBLE READONLY)
("Height" 1041 VISIBLE READONLY)
("Layers" #<VLA-OBJECT IAcadLayers 0bc56234> VISIBLE READONLY)
("Layouts" #<VLA-OBJECT IAcadLayouts 0bc558d4> VISIBLE READONLY)
("Limits" (0.0 0.0 420.0 297.0) VISIBLE READONLY)
("Linetypes" #<VLA-OBJECT IAcadLineTypes 0bc55ab4> VISIBLE READONLY)
("MSpace" 0 VISIBLE READONLY)
("Materials" #<VLA-OBJECT IAcadMaterials 0bc56144> VISIBLE READONLY)
("ModelSpace" #<VLA-OBJECT IAcadModelSpace2 0bc55b04> VISIBLE READONLY)
("Name" "Drawing1.dwg" VISIBLE READONLY)
("ObjectSnapMode" 0 VISIBLE READONLY)
("PaperSpace" #<VLA-OBJECT IAcadPaperSpace2 0bc55dd4> VISIBLE READONLY)
("Path" "C:\\Users\\programmer\\Documents" VISIBLE READONLY)
("PickfirstSelectionSet" #<VLA-OBJECT IAcadSelectionSet 0be2e75c> VISIBLE READONLY)
("Plot" #<VLA-OBJECT IAcadPlot 10207e94> VISIBLE READONLY)
("PlotConfigurations" #<VLA-OBJECT IAcadPlotConfigurations 0bc55bf4> VISIBLE READONLY)
("Preferences" #<VLA-OBJECT IAcadDatabasePreferences 0bc4c524> VISIBLE READONLY)
("ReadOnly" 0 VISIBLE READONLY)
("RegisteredApplications" #<VLA-OBJECT IAcadRegisteredApplications 0bc55f14> VISIBLE READONLY)
("Saved" 0 VISIBLE READONLY)
("SectionManager" "<Error: Exception occurred>" VISIBLE READONLY)
("SelectionSets" #<VLA-OBJECT IAcadSelectionSets 01bb946c> VISIBLE READONLY)
("SummaryInfo" #<VLA-OBJECT IAcadSummaryInfo 0bc4c5c4> VISIBLE READONLY)
("TextStyles" #<VLA-OBJECT IAcadTextStyles 0bc55c44> VISIBLE READONLY)
("UserCoordinateSystems" #<VLA-OBJECT IAcadUCSs 0bc560a4> VISIBLE READONLY)
("Utility" #<VLA-OBJECT IAcadUtility 0be5828c> VISIBLE READONLY)
("Viewports" #<VLA-OBJECT IAcadViewports 0bc55ec4> VISIBLE READONLY)
("Views" #<VLA-OBJECT IAcadViews 0bc55d34> VISIBLE READONLY)
("Width" 1936 VISIBLE READONLY)
("WindowState" 3 VISIBLE READONLY)
("WindowTitle" "Drawing1.dwg" VISIBLE READONLY)
METHODS
(NAME ARGUMENTS VISIBILITY)
("Activate" nil VISIBLE)
("AddRef" nil VISIBLE)
("AuditInfo" (("FixErr" BOOL)) VISIBLE)
("Close" (("SaveChanges" VARIANT OPTIONAL) ("FileName" VARIANT OPTIONAL)) VISIBLE)
("CopyObjects" (("Objects" VARIANT) ("Owner" VARIANT OPTIONAL) ("IdPairs" VARIANT OPTIONAL)) VISIBLE)
("EndUndoMark" nil VISIBLE)
("Export" (("FileName" STR) ("Extension" STR) ("SelectionSet" EMPTY)) VISIBLE)
("GetIDsOfNames" (("riid" EMPTY) ("rgszNames" I1) ("cNames" UINT) ("lcid" UI4) ("rgdispid" I4)) VISIBLE)
("GetTypeInfo" (("itinfo" UINT) ("lcid" UI4) ("pptinfo" VOID)) VISIBLE)
("GetTypeInfoCount" (("pctinfo" UINT)) VISIBLE)
("GetVariable" (("Name" STR)) VISIBLE)
("HandleToObject" (("Handle" STR)) VISIBLE)
("Import" (("FileName" STR) ("InsertionPoint" VARIANT) ("ScaleFactor" REAL)) VISIBLE)
("Invoke" (("dispidMember" I4) ("riid" EMPTY) ("lcid" UI4) ("wFlags" UI2) ("pdispparams" EMPTY) ("pvarResult" VARIANT) ("pexcepinfo" EMPTY) ("puArgErr" UINT)) VISIBLE)
("LoadShapeFile" (("FullName" STR)) VISIBLE)
("New" (("TemplateFileName" STR)) VISIBLE)
("ObjectIdToObject" (("ObjectID" I4)) VISIBLE)
("Open" (("FullName" STR) ("Password" VARIANT OPTIONAL)) VISIBLE)
("PurgeAll" nil VISIBLE)
("QueryInterface" (("riid" EMPTY) ("ppvObj" VOID)) VISIBLE)
("Regen" (("WhichViewports" EMPTY)) VISIBLE)
("Release" nil VISIBLE)
("Save" nil VISIBLE)
("SaveAs" (("FullFileName" STR) ("SaveAsType" VARIANT OPTIONAL) ("vSecurityParams" VARIANT OPTIONAL)) VISIBLE)
("SendCommand" (("Command" STR)) VISIBLE)
("SetVariable" (("Name" STR) ("Value" VARIANT)) VISIBLE)
("StartUndoMark" nil VISIBLE)
("Wblock" (("FileName" STR) ("SelectionSet" EMPTY)) VISIBLE)
:)
-
1. What version of Windows? - Xp Pro Sp2
2. What version of AutoCAD? - '06, '08 Electrical
3. Have you ever run the VBAIDE? - Maybe (but won't now)
4. What path on your machine hosts tlbinf32.dll? - N/A
5. Do you have Visual Studio 6 installed on an active drive? - Nope.
Command: tlitest
Better write a better _FindDLL MP!
-
Looks like you are enjoying this one Michael. Good work.
-
Thanks x 2 Tim!
It's been a real hoot, a great technical challenge and the basis of other pet projects I've had for years (object interrogation that is).
:)
-
Woo hoo, this one had been eluding me --
METHODS
(NAME ARGUMENTS VISIBILITY ACCESS)
("Activate" nil VISIBLE NORMAL)
("AddRef" nil VISIBLE RESTRICTED)
("AuditInfo" (("FixErr" BOOL)) VISIBLE NORMAL)
("Close" (("SaveChanges" variant OPTIONAL) ("FileName" variant OPTIONAL)) VISIBLE NORMAL)
("CopyObjects" (("Objects" variant) ("Owner" variant OPTIONAL) ("IdPairs" variant OPTIONAL)) VISIBLE NORMAL)
("EndUndoMark" nil VISIBLE NORMAL)
("Export" (("FileName" STR) ("Extension" STR) ("SelectionSet" EMPTY)) VISIBLE NORMAL)
("GetIDsOfNames" (("riid" EMPTY) ("rgszNames" I1) ("cNames" UINT) ("lcid" UI4) ("rgdispid" I4)) VISIBLE RESTRICTED)
("GetTypeInfo" (("itinfo" UINT) ("lcid" UI4) ("pptinfo" VOID)) VISIBLE RESTRICTED)
("GetTypeInfoCount" (("pctinfo" UINT)) VISIBLE RESTRICTED)
("GetVariable" (("Name" STR)) VISIBLE NORMAL)
("HandleToObject" (("Handle" STR)) VISIBLE NORMAL)
("Import" (("FileName" STR) ("InsertionPoint" variant) ("ScaleFactor" REAL)) VISIBLE NORMAL)
("Invoke" (("dispidMember" I4) ("riid" EMPTY) ("lcid" UI4) ("wFlags" UI2) ("pdispparams" EMPTY) ("pvarResult" variant) ("pexcepinfo" EMPTY) ("puArgErr" UINT)) VISIBLE RESTRICTED)
("LoadShapeFile" (("FullName" STR)) VISIBLE NORMAL)
("New" (("TemplateFileName" STR)) VISIBLE NORMAL)
("ObjectIdToObject" (("ObjectID" I4)) VISIBLE NORMAL)
("Open" (("FullName" STR) ("Password" variant OPTIONAL)) VISIBLE NORMAL)
("PurgeAll" nil VISIBLE NORMAL)
("QueryInterface" (("riid" EMPTY) ("ppvObj" VOID)) VISIBLE RESTRICTED)
("Regen" (("WhichViewports" EMPTY)) VISIBLE NORMAL)
("Release" nil VISIBLE RESTRICTED)
("Save" nil VISIBLE NORMAL)
("SaveAs" (("FullFileName" STR) ("SaveAsType" variant OPTIONAL) ("vSecurityParams" variant OPTIONAL)) VISIBLE NORMAL)
("SendCommand" (("Command" STR)) VISIBLE NORMAL)
("SetVariable" (("Name" STR) ("Value" variant)) VISIBLE NORMAL)
("StartUndoMark" nil VISIBLE NORMAL)
("Wblock" (("FileName" STR) ("SelectionSet" EMPTY)) VISIBLE NORMAL)
I think I may be close to being done the functional core.
:(
-
I pasted your code into my VBAIDE and it won't run. Looks like complete and total crap to me. What are all the curvy things?
C:TLITEST
Command: tlitest
Better write a better _FindDLL MP!
Command:
1. What version of Windows?
Microsoft Windows
Version 5.1 (Build 2600.xpsp_sp2_qfe.070227-2300 : Service Pack 2)
2. What version of AutoCAD?
AutoCAD 2008
B.51.0(UNICODE)
3. Have you ever run the VBAIDE?
Yeppers
4. What path on your machine hosts tlbinf32.dll?
Search is complete. There are no results to display.
5. Do you have Visual Studio 6 installed on an active drive?
No, haven't installed since the move.
Hmmm...guess I should read through the entire thread before posting. You probably don't need the info, but just in case...
-
Thank you Bob, it's good info.
It supports my supposition that machines that have had Visual BASIC 6 installed sport the dll, otherwise no.
-
Command: TliTest Better write a better _FindDLL MP!
1. What version of Windows?
Windows XP Pro
2. What version of AutoCAD?
AutoCAD 2007
3. Have you ever run the VBAIDE?
Yes
4. What path on your machine hosts tlbinf32.dll?
Searched in C drive. Not found.
5. Do you have Visual Studio 6 installed on an active drive?
No.
-
Ok, it took me forever, but I found a reliable / safe source for TLBINF32.DLL for those that might want it.
Visual Studio 6, Service Pack 6 (http://www.microsoft.com/downloads/details.aspx?familyid=A8494EDB-2E89-4676-A16A-5C5477CB9713&displaylang=en).
Said service pack, which manifests itself as a zip executable (Vs6sp6.exe), can be opened via winzip. Vs6sp6.exe hosts cab file VS6SP61.cab, which can also be opened via winzip, which hosts TLBINF32.DLL.
:P
-
Is using a DLL from a CAB, from a service pack for a program that you don't own be a copyright issue with Microsoft?
-
Can be downloaded from here:
http://home.wtal.de/ib/freisoft/
http://www.vbaccelerator.com/codelib/actvxdoc/article.htm
and a sample implementation:
http://msdn.microsoft.com/msdnmag/issues/1200/TypeLib/default.aspx
-
Can be downloaded from here:
http://home.wtal.de/ib/freisoft/
http://www.vbaccelerator.com/codelib/actvxdoc/article.htm
and a sample implementation:
http://msdn.microsoft.com/msdnmag/issues/1200/TypeLib/default.aspx
I know you mean well Luis but the dll is not on vbaccelerator's site and do you fully trust the other?
I found dozens of sites that hosted the dll but none I felt comfortable suggesting other than what I previously posted.
Just sayin'.
Is using a DLL from a CAB, from a service pack for a program that you don't own be a copyright issue with Microsoft?
Valid and important question. Sorry, I don't know Bob. It's the only source I felt comfortable suggesting.
{shrug}
-
Yes.... that was an implementation sample too...
About the DLL download area.... I saw a lot of other samples linking to that place.
BTW, I do not have that dll in any of my pc [5]
I have also Visual Studio Pro 6.0 that I do not use anymore and also the VB 6.0 that do not use of have installed... no idea if it is in any of them.
Visual Studio 2005 does not include with that... either
-
"Better write a better _FindDLL MP!"
1. What version of Windows? : Windows XP Pro
2. What version of AutoCAD? : MAP 3D 2006.
3. Have you ever run the VBAIDE? : Only out of curiosity.
4. What path on your machine hosts tlbinf32.dll? : Cannot locate any instance of this file.
5. Do you have Visual Studio 6 installed on an active drive? : No.
-
"Better write a better _FindDLL MP!"
...
Thanks Didge, appreciate you taking the time.
BTW, I do not have that dll in any of my pc [5]
I have also Visual Studio Pro 6.0 that I do not use anymore and also the VB 6.0 that do not use of have installed... no idea if it is in any of them.
Visual Studio 2005 does not include with that... either
Lines up with the rest of the reports. Thanks Luis.
-
This just in:
PROPERTIES
(PROPERTY VALUE ACCESS VISIBILITY)
("CodePane" #<VLA-OBJECT _CodePane 077d6758> READONLY NORMAL)
("CountOfDeclarationLines" 1 READONLY NORMAL)
("CountOfLines" 7 READONLY NORMAL)
("Lines" "<Error: Invalid number of parameters>" READONLY NORMAL)
("Name" "ThisDrawing" READWRITE HIDDEN)
("Parent" #<VLA-OBJECT _VBComponent 071fb1bc> READONLY NORMAL)
("ProcBodyLine" "<Error: Invalid number of parameters>" READONLY NORMAL)
("ProcCountLines" "<Error: Invalid number of parameters>" READONLY NORMAL)
("ProcOfLine" "<Error: Invalid number of parameters>" READONLY NORMAL)
("ProcStartLine" "<Error: Invalid number of parameters>" READONLY NORMAL)
("VBE" #<VLA-OBJECT VBE 07361c84> READONLY NORMAL)
METHODS
(METHOD ARGUMENTS ACCESS)
("AddFromFile" (("FileName" STR)) NORMAL)
("AddFromString" (("String" STR)) NORMAL)
("AddRef" nil RESTRICTED)
("CreateEventProc" (("EventName" STR) ("ObjectName" STR)) NORMAL)
("DeleteLines" (("StartLine" I4) ("Count" I4 OPTIONAL)) NORMAL)
("Find" (("Target" STR) ("StartLine" I4) ("StartColumn" I4) ("EndLine" I4) ("EndColumn" I4) ("WholeWord" BOOL OPTIONAL) ("MatchCase" BOOL OPTIONAL) ("PatternSearch" BOOL OPTIONAL)) NORMAL)
("GetIDsOfNames" (("riid" EMPTY) ("rgszNames" I1) ("cNames" UINT) ("lcid" UI4) ("rgdispid" I4)) RESTRICTED)
("GetTypeInfo" (("itinfo" UINT) ("lcid" UI4) ("pptinfo" VOID)) RESTRICTED)
("GetTypeInfoCount" (("pctinfo" UINT)) RESTRICTED)
("InsertLines" (("Line" I4) ("String" STR)) NORMAL)
("Invoke" (("dispidMember" I4) ("riid" EMPTY) ("lcid" UI4) ("wFlags" UI2) ("pdispparams" EMPTY) ("pvarResult" variant) ("pexcepinfo" EMPTY) ("puArgErr" UINT)) RESTRICTED)
("QueryInterface" (("riid" EMPTY) ("ppvObj" VOID)) RESTRICTED)
("Release" nil RESTRICTED)
("ReplaceLine" (("Line" I4) ("String" STR)) NORMAL)
Wanders off, rubbing hands, laughing maniacally ...
-
Michael,
.. Comments ?
... But it's actually probably easier to use OLEAUT32.DLL directly than it is to use TLBINF32.DLL.
Type Library Reader / Object Browser
updated 2007-10-07
http://www.jsware.net/jsware/vbcode.php3#tlbc
-
But it's actually probably easier to use OLEAUT32.DLL directly than it is to use TLBINF32.DLL.
I saw that Kerry (more than once) but it shares a worse fate than TLBINF32.DLL -- it's not on my pc even tho I've VB6 Enterprise installed. Figure that?
For all it's difficulty I've pretty much milked out everything I want from TLBINF32.DLL. I won't rule out OLEAUT32.DLL, but as I've many fish to fry and the TLBINF32.DLL is working (beyond my expectations really) OLEAUT32.DLL is a back burner route for now.
But genuine thanks for the heads up -- it's good to have scouts.
:)
-
This just in:
PROPERTIES
(PROPERTY VALUE ACCESS VISIBILITY)
("CodePane" #<VLA-OBJECT _CodePane 077d6758> READONLY NORMAL)
("CountOfDeclarationLines" 1 READONLY NORMAL)
("CountOfLines" 7 READONLY NORMAL)
("Lines" "<Error: Invalid number of parameters>" READONLY NORMAL)
("Name" "ThisDrawing" READWRITE HIDDEN)
("Parent" #<VLA-OBJECT _VBComponent 071fb1bc> READONLY NORMAL)
("ProcBodyLine" "<Error: Invalid number of parameters>" READONLY NORMAL)
("ProcCountLines" "<Error: Invalid number of parameters>" READONLY NORMAL)
("ProcOfLine" "<Error: Invalid number of parameters>" READONLY NORMAL)
("ProcStartLine" "<Error: Invalid number of parameters>" READONLY NORMAL)
("VBE" #<VLA-OBJECT VBE 07361c84> READONLY NORMAL)
METHODS
(METHOD ARGUMENTS ACCESS)
("AddFromFile" (("FileName" STR)) NORMAL)
("AddFromString" (("String" STR)) NORMAL)
("AddRef" nil RESTRICTED)
("CreateEventProc" (("EventName" STR) ("ObjectName" STR)) NORMAL)
("DeleteLines" (("StartLine" I4) ("Count" I4 OPTIONAL)) NORMAL)
("Find" (("Target" STR) ("StartLine" I4) ("StartColumn" I4) ("EndLine" I4) ("EndColumn" I4) ("WholeWord" BOOL OPTIONAL) ("MatchCase" BOOL OPTIONAL) ("PatternSearch" BOOL OPTIONAL)) NORMAL)
("GetIDsOfNames" (("riid" EMPTY) ("rgszNames" I1) ("cNames" UINT) ("lcid" UI4) ("rgdispid" I4)) RESTRICTED)
("GetTypeInfo" (("itinfo" UINT) ("lcid" UI4) ("pptinfo" VOID)) RESTRICTED)
("GetTypeInfoCount" (("pctinfo" UINT)) RESTRICTED)
("InsertLines" (("Line" I4) ("String" STR)) NORMAL)
("Invoke" (("dispidMember" I4) ("riid" EMPTY) ("lcid" UI4) ("wFlags" UI2) ("pdispparams" EMPTY) ("pvarResult" variant) ("pexcepinfo" EMPTY) ("puArgErr" UINT)) RESTRICTED)
("QueryInterface" (("riid" EMPTY) ("ppvObj" VOID)) RESTRICTED)
("Release" nil RESTRICTED)
("ReplaceLine" (("Line" I4) ("String" STR)) NORMAL)
Wanders off, rubbing hands, laughing maniacally ...
Hmm. A LISP routine that can write VBA code? Verrrrry Interesting.
I can already see how this could replace some of my VBA add-ins already.
Great Work Michael.
-
For anyone just joining this thread, the questions --
1. What version of Windows?
2. What version of AutoCAD?
3. Have you ever run the VBAIDE?
4. If found, what path on your machine hosts tlbinf32.dll?
5. Do you have Visual Studio 6 installed on an active drive?
:)
PS: Thanks to latest folks: CAB, Daniel and Steve.
tlitest
Better write a better _FindDLL MP!
1. XP Pro
2. 2006
3. Not on this machine
4. No.
5. No.
Ran vbaide and in acad typed tlitest with the same results.
Guess that answers that.
-
There are many reasons why exploiting tlbinf32.dll is beneficial to me (and why I freaked when I first recognized I could abuse it from lisp). The following represents but one way I'll be using said ability.
In the past when interogating objects I used a combination of atoms-family harvesting and brute force interrogation, the latter which involved compiling and maintaining lists of property and method names for anything non vanilla, like AutoPlant structural etc.
Now it can be done fully dynamically.
Red highlighting was done quickly (read "might have missed one or two") to give you idea of the breadth of this:
====================================Object====================================
<IKs_ComShape 2130572120> (13/27 of <IAcadModelSpace 2130554104>)
==================================Properties==================================
Application <IAcadApplication>
AreaClassName
Color 256
CrossSectionCatalog CISC_W.DBF
CrossSectionName W200X46
CutPlaneCount 0
Database <IAcadDatabase>
DetailCutCount 0
DisplayClassName
Document <IAcadDocument>
EntityName Ks_Shape
EntityType <Null Object, Reference or Value>
FacetCount 0
FamilyClassName
Handle 133
HasExtensionDictionary :vlax-false
HasTrueId 0
Height 203.0
HoleFieldCount 0
Hyperlinks <IAcadHyperlinks>
InsertOffsetX 0.0
InsertOffsetY -101.5
InsertPoint (0.0 12000.0 5000.0) <SafeArray>
IsReferenceManual :vlax-false
IsWeldedIShape :vlax-false
ItemNumber
Layer PS_SHAPE
Length 5000.0
Linetype ByLayer
LinetypeScale 1.0
Lineweight -1
LogicalLinkCount 0
Material 165
Name W200x46
Note1
Note2
ObjectID 2130572120
ObjectName Ks_Shape
OriginPosNumber
OutletCount 0
OwnerID 2130554104
PartOrigin -1
PlotStyleName ByLayer
PolyCutCount 0
PosNumber 1
ShipNumber
SubbodyCount 0
TotalCount 8
TrueColor <IAcadAcCmColor>
Visible :vlax-true
WeightCenter (6.78547e-005 11898.5 2500.0) <SafeArray>
Width 203.0
XAxis (-1.0 0.0 0.0) <SafeArray>
YAxis (0.0 1.0 0.0) <SafeArray>
===================================Methods====================================
AddRef nil RESTRICTED
AddReferenceLine (("StartPoint" variant) ("EndPoint" variant)) NORMAL
AddSlopedEdgeAt (("Point" variant)) NORMAL
ArrayPolar (("NumberOfObjects" INT) ("AngleToFill" REAL) ("C ...
ArrayRectangular (("NumberOfRows" INT) ("NumberOfColumns" INT) ("N ...
ClearReferenceOffset nil NORMAL
ClearReferencePoints nil NORMAL
Copy nil NORMAL
Delete nil NORMAL
DeleteSlopeFlangeSegment (("ThickIndex" INT)) NORMAL
DeleteSlopedEdgeAt (("Point" variant)) NORMAL
Erase nil NORMAL
GetAnalysisIsChanged (("Value" BOOL)) NORMAL
GetAnalysisIsConnected (("Value" BOOL)) NORMAL
GetAnalysisIsProtected (("Value" BOOL)) NORMAL
GetAnalysisLine (("StartPoint" variant) ("EndPoint" variant)) NORMAL
GetAnalysisVectors (("StartVector" variant) ("EndVector" variant)) ...
GetAreaClass (("ClassIndex" INT)) NORMAL
GetBoundingBox (("MinPoint" variant) ("MaxPoint" variant)) NORMAL
GetDirection nil NORMAL
GetDisplayClass (("ClassIndex" INT)) NORMAL
GetEndpointTo (("ReferencePoint" variant)) NORMAL
GetEndsideTo (("ReferencePoint" variant)) NORMAL
GetExtensionDictionary nil NORMAL
GetFamilyClass (("ClassIndex" INT)) NORMAL
GetIDsOfNames (("riid" EMPTY) ("rgszNames" I1) ("cNames" UINT) ...
GetInsertUcs (("vMatrix" variant)) NORMAL
GetLengthAddition nil NORMAL
GetMidLine (("MidLineStart" variant) ("MidLineEnd" variant)) ...
GetMidLineUcs (("vMatrix" variant)) NORMAL
GetReferenceLine (("StartPoint" variant) ("EndPoint" variant)) NOR...
GetReferenceOffset (("Dx" REAL) ("Dy" REAL)) NORMAL
GetReferencePoints (("Point1" variant) ("Point2" variant)) NORMAL
GetSlope nil NORMAL
GetSlopePolygons (("WebPolygon" EMPTY) ("LowerPolygon" EMPTY) ("Up...
GetSlopedHeightAt (("Point" variant) ("StartPoint" variant) ("EndPo...
GetTrueId (("pVal" STR)) NORMAL
GetTypeInfo (("itinfo" UINT) ("lcid" UI4) ("pptinfo" VOID)) RE...
GetTypeInfoCount (("pctinfo" UINT)) RESTRICTED
GetVertexAtPoint (("Point" variant) ("Topside" BOOL) ("Vertex" INT)...
GetWeight nil NORMAL
GetWeightLine (("WeightLineStart" variant) ("WeightLineEnd" vari...
GetXData (("AppName" STR) ("XDataType" variant) ("XDataValu...
GetXOrientation nil NORMAL
GetYOrientation nil NORMAL
Highlight (("HighlightFlag" BOOL)) NORMAL
IntersectWith (("IntersectObject" DISPATCH) ("option" EMPTY)) NO...
Invoke (("dispidMember" I4) ("riid" EMPTY) ("lcid" UI4) (...
Mirror (("Point1" variant) ("Point2" variant)) NORMAL
Mirror3D (("Point1" variant) ("Point2" variant) ("point3" v...
Move (("FromPoint" variant) ("ToPoint" variant)) NORMAL
QueryInterface (("riid" EMPTY) ("ppvObj" VOID)) RESTRICTED
Release nil RESTRICTED
RetrieveGeometry (("Geo" EMPTY)) NORMAL
Rotate (("BasePoint" variant) ("RotationAngle" REAL)) NORMAL
Rotate3D (("Point1" variant) ("Point2" variant) ("RotationA...
ScaleEntity (("BasePoint" variant) ("ScaleFactor" REAL)) NORMAL
SetAnalysisIsChanged (("Value" BOOL)) NORMAL
SetAnalysisIsConnected (("Value" BOOL)) NORMAL
SetAnalysisIsProtected (("Value" BOOL)) NORMAL
SetAnalysisLine (("StartPoint" variant) ("EndPoint" variant)) NORMAL
SetAnalysisVectors (("StartVector" variant) ("EndVector" variant)) NO...
SetAreaClass (("ClassIndex" INT)) NORMAL
SetCrossSection (("Name" STR) ("Catalog" STR)) NORMAL
SetDisplayClass (("ClassIndex" INT)) NORMAL
SetFamilyClass (("ClassIndex" INT)) NORMAL
SetLengthAddition (("LengthAddition" REAL)) NORMAL
SetReferenceOffset (("Dx" REAL) ("Dy" REAL)) NORMAL
SetShapeEnd (("newShapeEnd" variant)) NORMAL
SetShapeMirror nil NORMAL
SetShapeStart (("newShapeStart" variant)) NORMAL
SetSlope (("Slope" REAL)) NORMAL
SetSlopeFlangeSegment (("StartPoint" variant) ("EndPoint" variant) ("Wid...
SetSlopePolygons (("LowerPolygon" EMPTY) ("UpperPolygon" EMPTY)) NO...
SetSlopedHeightAt (("Position" variant) ("PickPoint" variant) ("Hei...
SetTrueId (("newVal" STR)) NORMAL
SetXData (("XDataType" variant) ("XDataValue" variant)) NOR...
TransformBy (("TransformationMatrix" variant)) NORMAL
Update nil NORMAL
===============================DXF Group Codes================================
-1 <Entity name: 7efdf358>
0 KS_SHAPE
330 <Entity name: 7efdacf8>
5 133
100 AcDbEntity
67 0
410 Model
8 PS_SHAPE
We use such property / method sheets to suppliment automation references for third party apps, which have traditionally been ummm, underweight and anemic. Having the ability to interrogate objects like this really helps when developing customization for non vanilla CADD apps.
la la la
-
Sorry for my tardiness, i will read the post now.
Found CLSID: {8B21775E-717D-11CE-AB5B-D41203C10000}
1. What version of Windows?
XP sp2
2. What version of AutoCAD?
2008 MEP
3. Have you ever run the VBAIDE?
Yes
4. What path on your machine hosts tlbinf32.dll?
C:\WINDOWS\system32
5. Do you have Visual Studio 6 installed on an active drive?
No
-
But it's actually probably easier to use OLEAUT32.DLL directly than it is to use TLBINF32.DLL.
I saw that Kerry (more than once) but it shares a worse fate than TLBINF32.DLL -- it's not on my pc even tho I've VB6 Enterprise installed. Figure that?
That one is installed on my pc. Just thought you might want to know that bit of info. :-)
-
Thank you for the updates John and Tim.
John's item 5 surprises me in light of item 0 and 4.
:)
-
For my friend Kerry ... if I'm not mistaken another thing about OLEAUT32.DLL is that is is (I'm guessing as I don't have it here) a regular system dll, that is, it's not an ActiveX (COM) dll.
So while it's accessible from VB/VBA (via declare statements as you would for any Win32 API call) it's not accessible directly from LISP. One would have to write an ActiveX (COM) wrapper to expose it to LISP, and hey -- there is one: TBLINF32.DLL; woot.
(As I pretend to understand it anyway).
:)
Edit: Meh, fixed dumb typos.
-
[scurries]
.. nudge-note to self: investigate writing COM interfaces with C# ...
.. .. dust off COM and .NET Interoperability ~ Troelsen
[revert_to_Normal_dawdle]
-
I'd truly be worried if there were a different reaction.
:lmao:
-
As you know, I'm not a VB devotee .. but I wonder what is installed from the redistribution packs for vb5 and vb6.
.. anyone have a manifest ?
-
The short circuited answer is that neither the vb runtimes and or the vb controls distribution host tlbinf32.dll.
An adjunct, I'm 99% sure that if one created a VB app that referenced tlbinf32.dll and then used the VB packager to create a setup program, the setup distribution would in fact include our friend.
I'll perform the above and report back ...
-
... yep.
-
(http://www.theswamp.org/screens/index.php?dir=KerryBrown/&file=SUCCINCT.png)
-
...
John's item 5 surprises me in light of item 0 and 4.
It does?! ...Wait, i just about to ask if i did something wrong when i think i understand why.
This could be the computer i used to rewrite a VB app some goof ball previous CAD mgr wrote. I think i used the trial version of VB5 or something (I can look tomorrow).
The reason i forgot is because im the guinea pig for trying out new computers for the jump to Revit and my latest got the blue-screen-o-death a few times so i had to go back a step or two. Sorry for the confusion.
-
Okay Kerry, your last post confused dahell outa me. In my profile i turned off smiles, images, signatures, avatars, etc. and to me your last post is blank. ...yeah that got me pretty good.
*lol*
-
:-) and that is who's fault ??
you must miss so much .. sig's and avatars I can understand ..
and without smileys, how can you tell what peeps really mean ?
-
sig's and avatars I can understand
Hey hey hey -- I'll have you know avatar and signature selection is serious business.
{cough}
:loco:
-
There is a help file from Microsoft for this tlbinf32.dll.
http://support.microsoft.com/kb/224331/en-us/
-
I have MEP 2008 as well. I wonder now, is this DLL where the Select Similiar option only available in MEP is wrapped up into????
-
_GetPropertiesAndMethods
dear MP,
Can you post the codes of _GetPropertiesAndMethods ?
Thanks!
-
Thanks MP for share it .
I used it in Win7 64Bit , Acad2011 , I can't found tlbinf32.dll . how to do it ?
-
After I download the "tlbinf32.dll" , it can be register OK , and found CLSID {8B21775D-717D-11CE-AB5B-D41203C10000} , it's value is "_TLIApplication" .
However can't be read by
(vl-registry-read
(strcat
"HKEY_CLASSES_ROOT\\"
"TLI.TLIApplication\\"
"CLSID"
)
)
can be read by following code, and return "_TLIApplication" , but can't creat-object by "(vlax-create-object "_TLIApplication")" or "(vlax-create-object "TLI.TLIApplication")"
(vl-some '(lambda (x)
(vl-registry-read
x)) ;_"Wow6432Node\\"
(list
(strcat
"HKEY_CLASSES_ROOT\\"
"TLI.TLIApplication\\"
"CLSID"
)
"HKEY_CLASSES_ROOT\\Interface\\{8B21775D-717D-11CE-AB5B-D41203C10000}"
)
)
-
After , execute cmd.exe by adminstractor , it can be register , and found TLI.TLIApplication CLSID , but can't be created in VLIDE yet .
I don't install VBA for ACAD2011 , is it the reason ?
And I has installed VBA for ACAD2015 , it can't be created too .
I found a simlar dll --- VSTLBINF.DLL in OFFICE12 , are they the same TLIApplication ?
Many thanks .
-
I execute the cmd.exe as Administrator , and then register VSTLBF.DLL , it can be right import and use in OFFICE12 , but no OK in VLIDE .
-
Hi MP any chance of sharing _GetPropertiesAndMethods.
Looks like a really useful tool.
Thanks Rod
-
Found more info at Topic "TLBINF32.DLL Upskirt" http://www.theswamp.org/index.php?topic=20003.0;all (http://www.theswamp.org/index.php?topic=20003.0;all)
But couldn't access through (vlax-create-object "_TLIApplication") same as chlh_jd
I have been able to access through vlax-import-type-library but will have to investigate more when I get a chance.
Am I missing something couldn't actually find MPs code?
-
Hi Rod / all, sorry to report that tho I exploited the type lib thing for many years I abandoned utilities based on it due to licensing issues, unpredictable presence on computers and other annoyances.
I re-coded the whole thing using strictly lisp and dcl (which is what I had initially done many years ago, but was side tracked by the fact type lib would do 90% of the heavy lifting. A nod here to SomeCallMeDave who I believe was the first to suggest the use of tlbinf32 and sparked my interest in same).
I'm not ready to make it available publicly yet but I've been using my latest incarnation (reasonably stable) for about a year:
(http://i.imgur.com/5X80xxC.png)
For the curious, It basically harvests the atoms family (which is augmented via vlax-import-type-library so it's populated with MS Access, Pro Structures ... info) and then sledge hammer interrogates an object via vlax-property-available-p and vlax-method-applicable-p. Despite having to slog thru candidate properties and methods numbering ~ 1000 and 800 respectively it's quick.
An aside, collections, objects, handles, entity names, xdata handles, e.g. (1005 ". "2A"), etc. are all live, allowing me to click thru the object model labyrinth at will. Between the live links and the [Pick], [PickN] and [Handle] methods, and the command line which lets me pass enames, objects and handles there's little that can escape it's examination.
Sorry it's not ready for prime time now. I have been simply swamped at my latest job, little time for extra curricular tools like this and others in the cue.
For the impatient there's enough info above to code your own or if you prefer, to use the venerable arxdbg utility (google (http://www.google.com/?q=arxdbg+site:www.theswamp.org)).
Cheers.
-
Looks cool Michael 8)
-
Impressive work as always Michael.
The ® for read-only is a nice touch :wink:
-
Ok no worries Michael.
Looks like a very impressive tool.
Especially useful for quick "I wonder if I could..." investigations with other software or type libraries.
I won't be writing my own code just yet but I appreciate the insight into how you went about it.
For now I will just use vlax-import-type-library and atoms-family
-
Thanks for your positive comments guys, encouraging. :)