Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 09/29/2024 in all areas

  1. MattyD

    WinRT Object Libraries

    Hi folks, Attached below is one way of attacking WinRT Objects. These are essentially COM objects, however they don't have an IDispatch interface so ObjCreate() cannot be used. It is possible to expose them using ObjCreateInterface though. Alternately, DllCallAddress() may be used to access an object's functions directly from memory. I'm using the latter mainly because that's the path I started down first! To make sense of whats in the attachment... WinRT.au3 - Core high level functions that sit on top of interface libraries Includes Async and Collection implementations etc. So basic high level functionality. WinRTCore.au3 - Internal helper functions for interface libraries Interface Folder - Interface libraries (there are over 850 of these!). Essentially these wrap the functions in an interface's vtable Includes tags which may be used with ObjCreateInterface Enums Folder - Contains map datatypes that can be used to convert enumeration strings to their numeric type, or vice versa Classes Folder - doesn't actually contain code - A class file includes interface and enum files that belong to a class. Namespaces Folder - doesn't actually contain code - A namespace file includes classes that are related. Bonus: I've also uploaded a rudimentary WinRT Class Explorer if it happens to be useful to anyone. Bonus2: I've added a tool that installs/removes calltips for interface libraries. Original post: WinRT Libraries - Latest ClassExplorer.zip
    1 point
  2. MariusN, I have come across a number of occasions when a Dummy control was useful: - 1. When using an Accelerator key without a corresponding control. You need a control to link to the Accelerator key, so if you do not have one (or do not want to use an existing one) you can use a Dummy. - 2. To fire a function from within a Windows message handler. You should return from a handler ASAP - by using GUICtrlSendToDummy you can exit quickly and get the Dummy control to fire with a specific value depending on the result. - 3. It is often useful to know the range of ControlIDs used by ListViewItems where you do not need to use variables to store each one. A Dummy control before and after the creation of the ListViewItems will do this for you. And there are doubtless many more.... M23
    1 point
×
×
  • Create New...