oleviewdotnet | net OLE/COM viewer and inspector to merge functionality

 by   tyranid C# Version: v1.11 License: GPL-3.0

kandi X-RAY | oleviewdotnet Summary

kandi X-RAY | oleviewdotnet Summary

oleviewdotnet is a C# library. oleviewdotnet has no bugs, it has no vulnerabilities, it has a Strong Copyleft License and it has medium support. You can download it from GitHub.

OleViewDotNet is a .NET 4 application to provide a tool which merges the classic SDK tools OleView and Test Container into one application. It allows you to find COM objects through a number of different views (e.g. by CLSID, by ProgID, by server executable), enumerate interfaces on the object and then create an instance and invoke methods. It also has a basic container to attack ActiveX objects to so you can see the display output while manipulating the data. All work (barring the shameless borrowing of the icon) copyright James Forshaw (c) 2014.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              oleviewdotnet has a medium active ecosystem.
              It has 940 star(s) with 172 fork(s). There are 54 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 15 open issues and 14 have been closed. On average issues are closed in 34 days. There are 4 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of oleviewdotnet is v1.11

            kandi-Quality Quality

              oleviewdotnet has 0 bugs and 0 code smells.

            kandi-Security Security

              oleviewdotnet has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              oleviewdotnet code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              oleviewdotnet is licensed under the GPL-3.0 License. This license is Strong Copyleft.
              Strong Copyleft licenses enforce sharing, and you can use them when creating open source projects.

            kandi-Reuse Reuse

              oleviewdotnet releases are available to install and integrate.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of oleviewdotnet
            Get all kandi verified functions for this library.

            oleviewdotnet Key Features

            No Key Features are available at this moment for oleviewdotnet.

            oleviewdotnet Examples and Code Snippets

            No Code Snippets are available at this moment for oleviewdotnet.

            Community Discussions

            QUESTION

            Accessing Windows Contacts (pre Win10) from JScript (or any ActiveScripting)
            Asked 2020-Feb-18 at 08:36

            I want to use the COM object with the progID Windows.Contact.1 via ActiveScripting (JScript, VBScript, Python, etc).

            This COM resides in C:\Program Files (x86)\Common Files\System\wab32.dll. It seems, there is no TypeLib available for it. The COM delivers, amongst others, IContact for the "Windows Address Book" (storing contacts as XML in folders, as in Windows 7). IContact is documented here.

            In JScript I did:

            ...

            ANSWER

            Answered 2020-Feb-18 at 08:36

            There are entire books on the subject, but here's a very simplified story. There are basically 3 "categories" of COM interfaces:

            Interfaces deriving from IUnknown

            • aliases for programming against: early binding, (custom) vtable binding
            • the simplest way to implement a COM "server"
            • it's only a binary contract (methods layout, method signature, parameters behavior like in/out for cross-apartment/process support, ...)
            • you need to somewhow tell your callers what is this binary contract you support (you can use .idl, .tlb or anything that your caller can understand)
            • there are some official ways of documenting your IUnknown-derived interfaces: .idl -> .h and .tlb is the most standard one
            • only supported by a certain class of languages (for example C/C++, .NET, Delphi), those who understand .tlb (or .idl, or equivalent .h), or those who allow redefining layout manually (like .NET). You can perfectly define a language that can do that w/o ever using .tlb. That's the beauty of COM, it's just a binary contract.
            • if your language doesn't support it, you just can't use it, you'll have to write or use a wrapper with a language that supports it and exposes it in a way your language supports. Powershell for example doesn't support IUnknown-derived interfaces (I'm not 100% sure) but supports .NET so it can use .NET as a "super wrapper".

            IDispatch interface

            • only requires one IUnknown well-known interface implementation: IDispatch
            • aliases for programming against: late binding, OLE automation, COM automation, or simply Automation (not to confuse with UI Automation)
            • invented for higher level languages (VB/VBA first, ActiveScripting a bit later)
            • only supported by a certain class of language, and the way it's supported varies (for example it's supported in C++ of course but it's not super easy w/o wrappers or tooling like Visual Studio's C++ #import directive). JScript and VBScript don't exactly support the same set of features with regards to Automation.
            • you're supposed to use only a predefined list of types "Automation-Compatible types":
            • these types where initially very related to VB/VBA (VARIANT, SAFEARRAY, BSTR which means "Basic String"...)
            • from the higher level language, it really makes COM much transparent and easier as that was the whole point (and can make it harder from the lower level ones...), it also allows "syntactic sugar" niceties
            • note the IDispatch implementation can be very dynamic and really late-bound at runtime (get id of name -> invoke) but most available programming tooling quite freezes the list of ids/names at compile time (ex: .NET) because they support Dual interfaces.

            Dual interfaces:

            • interfaces that implement a custom IDispatch-derived interface and implement IDispatch itself to match the custom interface (both implementations supposedly being "equivalent" of course). Have a look at the link below, it has nice images.
            • because of IDispatch, you're supposed to use only Automation compatible data types in the IDispatch-derived method.
            • it's more work to implement (so it's usually done by programming tools, for ex: ATL)
            • a bit easier for native (C/C++, etc.) callers (no need to use IDispatch wrappers) but you still have to digest automation data types

            IMHO, one of the best 1-page introduction to COM is here: Introduction to COM

            Source https://stackoverflow.com/questions/60250526

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install oleviewdotnet

            You can download it from GitHub.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries

            Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link