-
Oct 1st, 2022, 05:48 PM
#1
[twinBASIC] tbShellLib - Shell Interface Library (x64-compatible successor to oleexp)
twinBASIC Shell Library :: tbShellLib
Current Version: 3.7.62 (March 15th, 2023)
tbShellLib is a project to create an x64-compatible interface set as a successor to oleexp, since upgrading that with midl is nigh impossible due to some issues, and twinBASIC will eventually support exporting Type Libraries anyway.
The current form of this project is a twinpack file, which can be added to twinBASIC projects as a reference (Settings -> References -> twinpack Packages). Since the full scope of language features can be used in this form, it will include the addon modules internally.
Please submit any bugs here on the project GitHub page, and if there's any interfaces you use that haven't been implemented yet, please let me know, as actively used interfaces will go to the top of the priority list.
This project will aim for ~90-95% coverage of oleexp; I'm not planning on spending time on some interfaces that aren't usable beyond Windows 98/ME.
Coclasses
twinBASIC now supports coclasses!
You can once again use e.g.
Dim pExpBrowse As ExplorerBrowser
Set pExpBrowse = New ExplorerBrowser
Requirements
tbShellLib requires twinBASIC Beta 239 or newer.
Update (v3.7.62): Added all remaining missing oleexp interfaces simply for completeness and not needing to qualify 'contains everything in oleexp'. IHostDialog/coclass HostDialog seemed like a major omission from those legacy interfaces so added it. Continued to substantially expand API coverage.
Update (v3.6.56): Numerous bug fixes to IPinnedList[2,3], including their names: IPinnedListVista->IPinnedList, IPinnedList->IPinnedList2, IPinnedList10->IPinnedList3, to be more consistent with all other sources. Please do not abuse these interfaces: Never pin without permission. Added IWinEventHandler, IFolderBandPriv, and IAccessibleObject; added coclass TaskBand, and added numerous missing IIDs.
Update (v3.6.54): Some items were Private that should have been Public; put SW_Flags back to SHOWWINDOW now that bug is resolved for compatibility purposes (SHOWWINDOW is in oleexp). To use this, twinBASIC Beta 269 or newer is needed. Misc bug fixes.
Update (v3.6.52):
-By popular request to expand the API coverage, tbShellLib now has had tbComCtlLib merged into it. You can exclude these definitions with the TB_COMCTL_LIB_DEFINED compiler constant.
-Substantially expanded general API coverage.
-Misc bugfixes including renaming SHOWWINDOW enum to SW_Flags to work around a tB bug.
Update (v3.5.48):
-Added accessibility UI Automation interfaces and APIs.
---NOTE: This API had a number of very generically named enums, like FillMode and ToggleState; these have been prefixed with Uia_ to avoid conflicts. In most cases, the actual members were left alone, with the exception of LiveSetting (renamed Uia_LiveSetting), which had Off, Polite, and Assertive; these have been prefixed with Uia_ as well.
---NOTE: IUIAutomation, IUIAutomationProxyFactoryMapping, IUIAutomationAndCondition and IUIAutomationOrCondition have members that use a SAFEARRAY of IUIAutomationCondition... MKTYPLIB does not support this so these return a pointer you'll need to dereference.
-The package now includes a common helper function for interfaces: SwapVTableEntry, updated for use in both 32bit and 64bit mode.
-Added misc interfaces ICurrentWorkingDirectory, IPropertyKeyStore, ISortColumnArray, and IBannerNotificationHandler
-Added IHandlerInfo2, IDeskBar, IDeskBarClient amd IShellFolderBand
-Began expanding general API coverage
Update (v3.4.46): Added all GDIPlus APIs and all Common Dialog APIs.
Update (v3.3.41): Bug fix: IExplorerBrowserEvents::NavigationFailed was misspelled.
Update (v3.3.40): -Inexplicably, the IDeskBand, IDockingWindow, IDockingWindowFrame, and IDockingWindowSite interfaces were missing.
-Added ITrayBand, IDeskBand2, IDeskBandInfo, IBandHost, and IBandSite interfaces, IMenuBand, and coclasses TrayDeskBand, TrayBandSiteServices, and AddressBand.
-Added IRegTreeItem interface
-Added IPrintDialogCallback/IPrintDialogServices interfaces.
-Bug fix: Certain DirectWrite interface members had ByRef Long for strings where they should have had ByVal.
-Bug fix: SHELLSTATE had an extra member on the end (shouldn't have impacted use, but if MS changed the API to look for an exact size it would be an issue).
-Bug fix: Attempted to correct INameSpaceTreeControlEvents context menu crashing.
-Bug fix: INameSpaceTreeCustomDraw::ItemPrePaint was missing members.
Update (v3.2.30): Several Speech API interfaces were missing. Also, began using BOOL type as as enum with CFALSE (0) and CTRUE (1) members. I'll be slowly working on changing all the Long items that are actually BOOL to this over the coming months.
Update (v3.2.24): Numerous bugfixes to Speech API interfaces.
Update (v3.2.22): Missed some WebView2 interfaces that should have LongPtr instead of String; changed all String args to LongPtr just to be safe.
Update (v3.2.20): Bug fix: [out] LPWSTR* and [in] LPWSTR for Implements interfaces in WebView2 args changed to LongPtr. IEnumVARIANT was missed; added.
tbShellLibImpl (v1.2.6): Also was missing Implements version of IEnumVARIANT.
Update (v3.2.16): Added WebView2 (EXPERIMENTAL). Added IObjectProvider, IEnumObjects, and IIOCancelInformation interfaces.
Update (v3.1.14): Added Microsoft Speech APIs v5.4. Added IHttpNegotiate3.
Update (v3.0.13): -Added missing PROPSHEETHEADER and PROPSHEETHEADER_V2 types and PropSheet/PropSheetW APIs. Also corrected wrong values for PSN_TRANSLATEACCELERATOR/PSN_QUERYINITIALFOCUS.
-Began adding back in some Optionals in DirectX interfaces which weren't supported by MKTYPLIB so weren't in oleexp, where the tB code was generated from.
-(Bug fix) StringFromGUID2 now uses a Long instead of LPWSTR since the latter was not working.
-(Bug fix) D3D11CreateDevice and D3D11CreateDeviceAndSwapChain were declared incorrectly for 64bit compatibility (Softare param should be LongPtr).
Update (v3.0.10): Added all missing Direct2D interfaces/types/enums and corrected bugs in slDirectX.
Update (v2.9.90): EXPERIEMENTAL: Added Direct3D 11 and 12.
Update (v2.9.85):
-Bug fix: ITypeInfo::AddressOfMember returned Long instead of LongPtr (#11); ICreateTypeLib2 incorrectly extended IUnknown instead of ICreateTypeLib, and other misc bugfixes.
-Added objidl.idl interfaces IAdviseSink2, IClientSecurity, IServerSecurity, IMallocSpy, IClassActivator, IProgressNotify, IStdMarshalInfo, IExternalConnection and IThumbnailExtractor (w/coclass ThumbnailFCNHandler).
-Added undocmented hardware enum interfaces/coclasses.
Update (v2.9.81): Bug fix: ITypeLib::GetTypeInfoCount and several others never had [ PreserveSig ] restored after support was added.
Update (v2.9.80):
-Substantially expanded Media Foundation set, also now includes all related GUIDs defined in mfidl.idl.
-Added basic Media Foundation interfaces from oleexp that were missing up until now. (v2.8.78): Fixed missing PtrSafe attributes and SwapVTable type errors.
- Added DXGI and DirectComposition interfaces (experimental).
-Shell automation intefaces using VARIANT_BOOL have been changed to Boolean to be more correct than Integer (the underlying typedef is short, which is why is was Integer at first).
Update (v2.7.66):
-HIGHLY EXPERIMENTAL: Added DirectWrite and Direct2D interfaces via merging d2dvb.tlb/dwvb.tlb by @Thetrik with oleexp, then copying out of tB's typelib browser. I've done an initial review to find pointer types, but may have missed some, and the defs are extremely VB-hostile and even more MKTYPLIB hostile so there may be function prototype issues. These are all in slDirectX.twin if you wanted to remove it from a build.
-Added Windowless RichEdit interfaces (ITextServices[2], ITextHost[2], IRicheditUiaOverrides)
-Bug fix: CreateTypeLib definition incorrect (#8)
-(tbShellLibImpl) Updated to v1.1.4- added Implements compatible versions of ITextHost[2]. WARNING: The signatures are incorrect as [ PreserveSig ] is not optional. You will need to swap the vtable entries to a correct prototype. These are provided merely to get around the invalid signature compiler error.
Update (v2.6.60/v2.6.62):
-IMPORTANT: tbShellLib now requires twinBASIC Beta 239 or newer. This is due to the requirement to use the new [ OleAutomation(False) ] attribute in order for interfaces to be used in compiled Active-X controls. All tbShellLib interfaces have been marked this way. This should not impact regular usage or UserControl usage; if it does, please create an issue.
-Completed Text Object Model interfaces as of Win10 (TOM.h).
-Added interfaces IObjectWith*****erModelID, IObjectWithProgID, IObjectWithCancelEvent, IObjectWithSelection, and IObjectWithBackReferences.
-Added interface IRemoteComputer
-Added interface IUpdateIDList
-Added interfaces IAccessibilityDockingService and IAccessibilityDockingServiceCallback with coclass AccessibilityDockingService
-Bug fix: #7 FILE_ATTRIBUTE_PINNED incorrectly defined
-tbShellLibImpl updated to 1.0.3 to update it's tbShellLib reference.
Update (v2.5.56):
-Added Sync Manager interfaces and coclasses (SyncMgr.h), including undocumented ITransferConfirmation/coclass TransferConfirmationUI.
-Added interfaces IPersistSerializedPropStorage, IPersistSerializedPropStorage2, and IPropertySystemChangeNotify
-Added missing propsys coclasses CLSID_InMemoryPropertyStore, CLSID_InMemoryPropertyStoreMarshalByValue, CLSID_PropertySystem
-Added IListViewVista interface (Vista-only version of IListView)
-Added IPinnedList with variants IPinnedListVista (Windows Vista) and IPinnedList10 (Windows 10 build 1809 and newer). Also added IStartMenuPin, ITrayNotify and INotificationCB. These are undocumented taskbar interfaces for programmatically pinning items to the start menu and taskbar. Added TaskbandPin, TrayNotify, and StartMenuPin coclasses (the last one is officially documented for the IStartMenuPinnedList interface with remove pin only, but it implements the undocumented pinning interfaces too and those have been added to the supported list).
-Bug fix: Numerous enum values defined incorrectly as &H8000, causing sign issues in bitwise operations and downstream issues from that.
Update (v2.4.48):
-CRITICAL BUG FIX: IFolderView was missing GetDefaultSpacing, breaking any use of it and IFolderView2.
-Bug fix: IsEqualIID API declare was not marked PtrSafe.
-IServiceProvider did not use PreserveSig in the original oleexp, so that has been changed to match here, for use with Implements.
-Added IShellUIHelper[2,3,4,5,6,7,8,9], IShellFavoritesNameSpace, IShellNameSpace, IScriptErrorList and related coclasses.
-Added IDesktopWallpaper with coclass DesktopWallpaper
-Added IAppVisibility and IAppVisibilityEvents
-Added coclass AppStartupLink
-Added IApplicationActivationManager with coclass ApplicationActivationManager
-Added IContactManagerInterop, IAppActivationUIInfo, IHandlerActivationHost, IHandlerInfo, ILaunchSource*****erModelId, ILaunchTargetViewSizePreference, ILaunchSourceViewSizePreference, ILaunchTargetMonitor, IApplicationDesignModeSettings, IApplicationDesignModeSettings2, IExecuteCommandApplicationHostEnvironment, IPackageDebugSettings, IPackageDebugSettings2, IPackageExecutionStateChangeNotification, IDataObjectProvider, IDataTransferManagerInterop. -Added coclasses for above: PackageDebugSettings, SuspensionDependencyManager, ApplicationDesignModeSettings
tbShellLibImpl (v1.0): tbShellLib for Implements initial release. This does not cover all of oleexpimp.tlb because there's no need for an out only vs in, out distinction which many had as the only difference.
Update (v2.3.44): ICategoryProvider and ICategorizer had BSTR instead of LPWSTR (LongPtr) arguments.
Update (v2.3.40): Fixes for SHGetPathFromIDList[W] and IVirtualDesktopManager::IsWindowOnCurrentVirtualDesktop.
Update (v2.3.38): ICategorizer::GetCategory had apidl argument incorrectly defined as ByVal.
Update (v2.3.35): IShellIconOverlay had incorrect pIndex params in both methods. This didn't effect 32bit projects as pointers were the same size as the index.
Update (v2.3.32): Fixed GWL_* duplicate error and LARGE_INTEGER restored to hipart/lowpart for compatibility; ULARGE_INTEGER still uses quadpart if desired.
Update (v2.3.30): Fixed CM_COLUMNINFO bug since it was causing SetColumnInfo to trigger an automation error.
Update (v2.3.26): Minor bug fixes.
Update (v2.2.24): Added IWebBrowser2 interface I thought was already there.
Update (v2.1.24): twinBASIC now supports in-project CoClass syntax! All coclasses from oleexp have been added (I think, if you find one missing please let me know), and can once again be used with the New keyword. The prior sCLSID constants have been left in. Also greatly expanded the API declare coverage to match what was in oleexp, though a few DLLs are still pending. Finally, tbShellLib now declares an compiler constant, TB_SHELLLIB_DEFINED, to help avoid conflicts with other projects (chiefly, my upcoming Common Controls 64-bit compatible library). tbShellLib now requires twinBASIC Beta 167 or newer.
Update (v2.0.20): The project has reached it's initial goal of implementing all but the most obsolete oleexp.tlb interfaces. In addition, with similar exception of a small set of highly obsolete items, the API coverage is now available. Note that this was subject to extensive cleanup; native-language declares can't use the last param as retval on APIs, so all of those were converted, and TLB APIs pass Strings as BSTR, while native language passes ANSI strings, so there's currently a mix of either using LongPtr or tB's DeclareWide for BSTR/LPWSTR support (if it says String you can use a String without StrPtr).
Update (v1.9.17, 15 Oct 2022): Extensive new interface additions; all remaining oleexp additions have been added including WIC and NetCon, and the majority of remaining original olelib interfaces have been added as well.
Update (v1.2.10): twinBASIC now supports [ PreserveSig ] as an attribute to have HRESULT values as a function return instead of only available via Err.LastHResult; tbShellLib now has this implemented wherever it is in oleexp. Like in VB, this means they're not Implements compatible, and at some point in the next few weeks, there will also be a tbShellLibImpl as a counterpart to oleexpimp.tlb. This update also adds all DirectShow interfaces (and mDirectShow.bas), most remaining oleexp interfaces, and several additional olelib interfaces.
Update (v1.1.9): Added class factory/typelib interfaces from olelib plus oleexp extensions; added manipulation.idl stuff (internial scrolling), and a few misc others.
Update (v1.1.6): Added a small number of interfaces I shouldn't have left out of the first major release... IShellExtInit, IShellExtPropPage (and related structs/apis), IQueryAssociations, IItemNameLimits, IObjectWithSite, a few others.
Project Download
Option 1: This project is published to the twinBASIC Package Manager; you can directly add it to your project via Settings->COM Type Library / Active-X References->TWINPACK Packages. It will show up in the list automatically, and selecting it will download it from the twinBASIC Package server.
Option 2: This project is also available on GitHub, which includes an Export folder where you can browse the source from your web browser.
(The attachment size limit no longer permits hosting it here)
Last edited by fafalone; Mar 15th, 2023 at 09:07 PM.
Reason: Corrected typos/outdated info in description; no project update
-
Oct 1st, 2022, 05:49 PM
#2
Re: [twinBASIC] tbShellLib - Shell Interface Library (x64-compatible successor to ole
Currently Implemented Interfaces in Bold (oleexp additions) (as of v1.1.8)
IAccessible
IAccessibleHandler
IAccessibleWindowlessSite
IAccIdentity
IAccPropServer
IAccPropServices; coclass CAccPropServices
IApplicationAssociationRegistration*; coclass ApplicationAssociationRegistration
IApplicationAssociationRegistrationUI*; coclass ApplicationAssociationRegistrationUI
IApplicationDestinations
IApplicationDocumentLists; coclass ApplicationDocumentLists
IAppPublisher
IAssocHandler
IAssocHandlerInvoker
IAutoCompleteDropDown
IBrowserFrameOptions
IColumnManager
ICommDlgBrowser*
ICommDlgBrowser2*
ICommDlgBrowser3*
ICondition, coclass LeafCondition et al.
ICondition2
IConditionFactory; coclass ConditionFactory
IConditionFactory2
IConditionGenerator
IContextMenu3
IContextMenuCB
ICurrentItem
ICustomizeInfoTip
ICreateObject
ICustomDestinationsList; coclass DestinationList
IDataObjectAsyncCapability‡
IDefaultExtractIconInit
IDefaultFolderMenuInitialize; coclass DefFolderMenu
IDelegateFolder
IDelegateItem
IDisplayItem
IDragSourceHelperr; coclass DragDropHelper
IDragSourceHelper2r; coclass DragDropHelper
IDropTargetHelperr; coclass DragDropHelper
IDynamicHWHandler
IEntity
IEnumAssocHandlers
IEnumerableView
IEnumExplorerCommand
IEnumFullIDList
IEnumPublishedApps
IEnumReadyCallback
IEnumResources*
IEnumShellItems
IExecuteCommand; coclasses ExecuteFolder, ExecuteUnknown, and AppShellVerbHandler
IExecuteCommandHost
IExplorerBrowser; coclass ExplorerBrowser
IExplorerBrowserEvents
IExplorerCommand
IExplorerCommandProvider
IExplorerCommandState
IExplorerPaneVisibility*
IFileDialog
IFileDialog2
IFileDialogControlEvents
IFileDialogCustomize
IFileDialogEvents
IFileIsInUse
IFileOpenDialog; coclass FileOpenDialog
IFileOperation; coclass FileOperation
IFileOperationProgressSink
IFileSaveDialog; coclass FileSaveDialog
IFileSystemBindData
IFileSystemBindData2
IFilterCondition
IFolderView2
IFolderViewOptions
IFolderViewSettings
IFrameworkInputPane; coclass FrameworkInputPane
IFrameworkInputPaneHandler
IHomeGroup; coclass HomeGroup
IHWEventHandler2
IIdentityName
IImageList; coclass ImageList***
IImageList2
IImageRecompress; coclass ImageRecompress
IInertiaProcessor; coclass InertiaProcessor
IInitializeCommand
IInitializeNetworkFolder, coclass NetworkPlaces
IInitializeWithBindCtx
IInitializeWithFile
IInitializeWithItem
IInitializeWithPropertyStore
IInitializeWithStream
IInitializeWithWindow
IInternetSecurityManagerEx
IInternetSecurityManagerEx2
IInternetZoneManagerEx
IInternetZoneManagerEx2
IInterval, coclass Interval
IItemFilter
IItemNameLimits
IKnownFolder
IKnownFolderManager; coclass KnownFolderManager
IManipulationProcessor; coclass ManipulationProcessor
IManipulationEvents
IMessageFilter
IMetaData
IModalWindow
IMultiQI
|
INamedEntity
INamedEntityCollector
INamedPropertyStore
INameSpaceTreeControl
INameSpaceTreeControl2; coclass NamespaceTreeControl
INameSpaceTreeControlAccessible
INameSpaceTreeControlCustomDraw
INameSpaceTreeControlDropHandler
INameSpaceTreeControlEvents
INameSpaceTreeControlFolderCapabilities
INamespaceWalk
INamespaceWalkCB
INamespaceWalkCB2
INewMenuClient
INewWindowManager
IObjectArray
IObjectCollection; coclass EnumerableObjectCollection
IObjectWithFolderEnumMode
IObjectWithPropertyKey
IObjMgr
IOperationsProgressDialog
IParentAndItem
IPersistFolder3
IPreviewHandler
IPreviewHandlerFrame
IPreviewHandlerVisuals
IPreviewItem
IPreviousVersionsInfo; coclass PreviousVersions
IProgressDialog
IPropertyChange
IPropertyChangeArray
IPropertyDescription
IPropertyDescription2
IPropertyDescriptionAliasInfo
IPropertyDescriptionList
IPropertyDescriptionRelatedPropertyInfo
IPropertyDescriptionSearchInfo
IPropertyEnumType
IPropertyEnumType2
IPropertyEnumTypeList
IPropertyStore
IPropertyStoreCache
IPropertyStoreCapabilities
IPropertyStoreFactory
IPropertySystem
IPublishedApp*
IPublishedApp2*
IQueryParser, coclass QueryParser
IQueryParserManager, coclass QueryParserManager
IQuerySolution
IRelatedItem
IRelationship
IResolveShellLink
IResultsFolder
IRichChunk*
ISchemaLocalizerSupport
ISchemaProvider
ISearchBoxInfo*
ISearchFolderItemFactory; coclass SearchFolderItemFactory
ISharedBitmap
ISharingConfigurationManager; coclass SharingConfigurationManager
IShellApp
IShellChangeNotify
IShellFolderViewCB*
IShellIconOverlay
IShellIconOverlayIdentifier*
IShellIconOverlayManager; coclass CFSIconOverlayManager
IShellImageDataFactory; coclass ShellImageDataFactory
IShellImageData
IShellImageDataAbort*
IShellItem
IShellItem2
IShellItemArray
IShellItemFilter
IShellItemImageFactory
IShellItemResources
IShellLibrary
IShellLinkDataList
IShellMenu*
IShellMenuCallback*
IShellRunDll
IShellTaskScheduler; coclass ShellTaskScheduler
IShellWindows; coclass ShellWindows
IStartMenuPinnedList
IStreamAsync
ISystemInformation; coclass SystemInformation
ITaskbarList3
ITaskbarList4; coclass TaskbarList
ITaskService, coclass TaskS
IThumbnailCache; coclass LocalThumbnailCache
IThumbnailHandlerFactory
IThumbnailProvider
IThumbnailSettings
ITokenCollection
ITrackShellMenu; coclass TrackShellMenu
ITranscodeImage; coclass ImageTranscode
ITransferAdviseSink*
ITransferDestination*
ITransferMediumItem
ITransferSource*
IUri
IUserNotification2; coclass UserNotification
IUserNotificationCallback
IUseToBrowseItem
IViewStateIdentityItem
IVirtualDesktopManager, coclass VirtualDesktopManager
IVisualProperties
IZoneIdentifier; coclass PersistentZoneIdentifier
IZoneIdentifier2
IZombie |
Task Manager
IAction
IActionCollection
IBootTrigger
IComHandlerAction
IDailyTrigger
IEmailAction
IEventTrigger
IExecAction
IExecAction2
IIdleSettings
IIdleTrigger
ILogonTrigger
IMaintenanceSettings
IMonthlyDOWTrigger
IMonthlyTrigger
INetworkSettings
IPrincipal
IPrincipal2
IRegisteredTask
IRegisteredTaskCollection
IRegistrationInfo
IRegistrationTrigger
IRepetitionPattern
IRunningTask
IRunningTaskCollection
ISessionStateChangeTrigger
IShowMessageAction
ITaskDefinition
ITaskFolder
ITaskFolderCollection
ITaskHandler
ITaskHandlerStatus
ITaskNamedValueCollection
ITaskNamedValuePair
ITaskService; coclass TaskScheduler
ITaskSettings
ITaskSettings2
ITaskSettings3
ITaskVariables
ITimeTrigger
ITrigger
ITriggerCollection
IWeeklyTrigger
Spell Checking
IComprehensiveSpellCheckProvider
IEnumSpellingError
IOptionDescription
ISpellChecker
ISpellChecker2
ISpellCheckerChangedEventHandler
ISpellCheckerFactory; coclass SpellCheckerFactory
ISpellCheckProvider
ISpellCheckProviderFactory
ISpellingError
IUserDictionariesRegistrar
ListView
IDrawPropertyControl
IListView
IListViewFooter
IListViewFooterCallback
ILVRange
IOwnerDataCallback
IPropertyControl
IPropertyControlBase
IPropertyValue
ISubItemCallback
Shell Automation
DFConstraint
DShellFolderViewEvents, coclass ShellFolderViewOC
Folder
Folder2
Folder3
FolderItem
FolderItem2, coclass FolderItem
FolderItems
FolderItems2
FolderItems3
FolderItemVerb
FolderItemVerbs
IFolderViewOC
IShellFolderViewDual
IShellFolderViewDual2
IShellFolderViewDual3, coclass ShellFolderView
IShellDispatch
IShellDispatch2
IShellDispatch3
IShellDispatch4
IShellDispatch5
IShellDispatch6, coclass Shell
IShellLinkDual
IShellLinkDual2, coclass ShellLinkObject |
Core Audio |
IActivateAudioInterfaceAsyncOperation
IActivateAudioInterfaceCompletionHandler
IAudioAutoGainControl
IAudioBass
IAudioCaptureClient
IAudioChannelConfig
IAudioClient
IAudioClient2
IAudioClient3
IAudioClock
IAudioClock2
IAudioClockAdjustment
IAudioEndpointFormatControl
IAudioEndpointLastBufferControl
IAudioEndpointOffloadStreamMeter
IAudioEndpointOffloadStreamMute
IAudioEndpointOffloadStreamVolume
IAudioEndpointVolume
IAudioEndpointVolumeCallback
IAudioEndpointVolumeEx
IAudioInputSelector
IAudioLfxControl |
IAudioLoudness
IAudioMeterInformation
IAudioMidrange
IAudioMute
IAudioOutputSelector
IAudioPeakMeter
IAudioRenderClient
IAudioSessionControl
IAudioSessionControl2
IAudioSessionEnumerator
IAudioSessionEvents
IAudioSessionManager
IAudioSessionManager2
IAudioSessionNotification
IAudioStreamVolume
IAudioSystemEffects
IAudioSystemEffects2
IAudioTreble
IAudioVolumeDuckNotification
IAudioVolumeLevel
IChannelAudioVolume
IConnector |
IControlChangeNotify
IControlInterface
IDeviceSpecificProperty
IDeviceTopology
IHardwareAudioEngineBase
IKsControl
IKsFormatSupport
IKsJackContainerId
IKsJackDescription
IKsJackDescription2
IKsJackSinkInformation
IMMDevice
IMMDeviceActivator
IMMDeviceCollection
IMMDeviceEnumerator
IMMEndpoint
IMMNotificationClient
IPart
IPartsList
IPolicyConfig
IPerChannelDbLevel
ISimpleAudioVolume
ISubunit |
DirectShow** |
IAMAnalogVideoDecoder
IAMAsyncReaderTimestampScaling
IAMAudioInputMixer
IAMAudioRendererStats
IAMBufferNegotiation
IAMCameraControl
IAMCertifiedOutputProtection
IAMChannelInfo
IAMClockAdjust
IAMClockSlave
IAMCollection
IAMCopyCaptureFileProgress
IAMCrossbar
IAMDecoderCaps
IAMExtendedErrorInfo
IAMExtendedSeeking
IAMMediaContent
IAMMediaContent2
IAMNetShowConfig |
IAMNetShowExProps
IAMNetShowPreroll
IAMNetworkStatus
IAMStats
IBaseFilter, multiple coclasses
IBasicAudio
IBasicVideo
IBasicVideo2
ICaptureGraphBuilder
ICaptureGraphBuilder2
IDeferredCommand
IEnumFilters
IEnumMediaTypes
IEnumPins
IFileSinkFilter
IFilterGraph, coclass FilterGraph
IFilterGraph2
IFilterGraph3
IFilterInfo |
IGraphBuilder
IMediaControl
IMediaEvent
IMediaEventEx
IMediaFilter
IMediaPosition
IMediaSample
IMediaSample2
IMediaSample3
IMediaTypeInfo
IPin
IPinInfo
IQueueCommand
IReferenceClock
IRegFilterInfo
ISampleGrabber, coclass SampleGrabber
ISampleGrabberCB
IVideoWindow |
Windows Imaging Component (WIC)ª |
IWICBitmap
IWICBitmapClipper
IWICBitmapCodecInfo
IWICBitmapCodecProgressNotification
IWICBitmapDecoder
IWICBitmapDecoderInfo
IWICBitmapEncoder
IWICBitmapEncoderInfo
IWICBitmapFlipRotator
IWICBitmapFrameDecode
IWICBitmapFrameEncode
IWICBitmapLock
IWICBitmapScaler
IWICBitmapSource
IWICBitmapSourceTransform
IWICColorContext
IWICColorTransform
IWICComponentFactory |
IWICComponentInfo
IWICDdsDecoder
IWICDdsEncoder
IWICDdsFrameDecode
IWICDevelopRaw
IWICDevelopRawNotificationCallback
IWICEnumMetadataItem
IWICFastMetadataEncoder
IWICFormatConverter
IWICFormatConverterInfo
IWICImageEncoder
IWICImagingFactory, coclass WICImagingFactory
IWICImagingFactory2, coclass WICImagingFactory2
IWICJpegFrameDecode
IWICJpegFrameEncode
IWICMetadataBlockReader
IWICMetadataBlockWriter
IWICMetadataHandlerInfo |
IWICMetadataQueryReader
IWICMetadataQueryWriter
IWICMetadataReader
IWICMetadataReaderInfo
IWICMetadataWriter
IWICMetadataWriterInfo
IWICPalette
IWICPersistStream
IWICPixelFormatInfo
IWICPixelFormatInfo2
IWICPlanarBitmapFrameEncode
IWICPlanarBitmapSourceTransform
IWICPlanarFormatConverter
IWICProgressCallback
IWICProgressiveLevelControl
IWICStream
IWICStreamProvider |
Portable Devices |
IEnumPortableDeviceConnectors****
IEnumPortableDeviceObjectIDs
IPortableDevice, coclasses PortableDevice, PortableDeviceFTM
IPortableDeviceCapabilities
IPortableDeviceConnector****
IPortableDeviceContent
IPortableDeviceContent2
IPortableDeviceDispatchFactory, coclass PortableDeviceDispatchFactory
IPortableDeviceEventCallback
IPortableDeviceKeyCollection, coclass PortableDeviceKeyCollection
IPortableDeviceManager, coclass PortableDeviceManager |
IPortableDeviceProperties
IPortableDevicePropertiesBulkCallback
IPortableDevicePropVariantCollection, coclass PortableDevicePropVariantCollection
IPortableDeviceResources
IPortableDeviceService, coclass PortableDeviceService
IPortableDeviceServiceCapabilities
IPortableDeviceServiceMethodCallback
IPortableDeviceServiceMethods
IPortableDeviceServiceOpenCallback
IPortableDeviceValues, coclass PortableDeviceValues
IPortableDeviceValuesCollection
IPortableDeviceWebControl, coclass PortableDeviceWebControl
IWpdSerializer, coclass WpdSerializer |
Net Connections |
IEnumNetConnection
IEnumNetSharingEveryConnection
IEnumNetSharingPortMapping
IEnumNetSharingPrivateConnection
IEnumNetSharingPublicConnection
INetConnection
INetConnectionConnectUi
INetConnectionManager, coclass ConnectionManager
INetConnectionProps |
INetSharingConfiguration
INetSharingEveryConnectionCollection
INetSharingManager, coclass NetSharingManager
INetSharingPortMapping
INetSharingPortMappingCollection
INetSharingPortMappingProps
INetSharingPrivateConnectionCollection
INetSharingPublicConnectionCollection |
All related types/enums for finished interfaces are provided.
Last edited by fafalone; Oct 19th, 2022 at 10:28 AM.
-
Oct 1st, 2022, 05:52 PM
#3
Re: [twinBASIC] tbShellLib - Shell Interface Library (x64-compatible successor to ole
Interfaces Included From Original OLELIB
IACList
IACList2
IActionProgress
IActionProgressDialog
IActiveDesktop
IAddressBarParser; coclass AddressBarParser
IAdviseSink
IAuthenticate
IAutoComplete
IAutoComplete2
IBindCtx
IBindHost
IBinding
IBindProtocol
IBindStatusCallback
ICallAddRelease
ICallGION
ICallInvoke
ICallQI
ICategorizer; multiple coclasses‡
ICategoryProvider
ICatInformation; coclass StdComponentCategoriesMgr
ICatRegister
ICDBurn; coclass CDBurn
IClassFactory
IClassFactory2
IColumnProvider
IConnectionPoint
IConnectionPointContainer
IContextMenu
IContextMenu2
IContinueCallback
ICopyHookA
ICopyHookW
ICreateErrorInfo
ICreateTypeInfo
ICreateTypeInfo2
ICreateTypeLib
ICreateTypeLib2
ICustomDoc
IDataObject
IDeskBand
IDiscMaster; coclass MSDiscMasterObj
IDiscMasterProgressEvents
IDiscRecorder; coclass MSDiscRecorderObj
IDispatch (renamed IDispatchUnrestricted)
IDocHostShowUI
IDocHostUIHandler
IDocHostUIHandler2
IDockingWindow
IDockingWindowFrame
IDockingWindowSite
IDropSource
IDropTarget
IDynamicHWHandler
IEmptyVolumeCache
IEmptyVolumeCache2
IEmptyVolumeCacheCallBack
IEnumACString
IEnumCATEGORYINFO
IEnumConnectionPoints
IEnumConnections
IEnumDiscMasterFormats
IEnumDiscRecorders; coclass MSEnumDiscRecordersObj
IEnumExtraSearch
IEnumFORMATETC
IEnumGUID
IEnumHLITEM
IEnumIDList
IEnumMoniker
IEnumOleDocumentViews
IEnumOLEVERB
IEnumSTATDATA
IEnumSTATPROPSETSTG
IEnumSTATPROPSTG
IEnumSTATSTG
IEnumSTATURL
|
IEnumString
IEnumUnknown
IEnumVARIANT
IEnumWorkItems
IErrorInfo
IErrorLog
IExtractIconA
IExtractIconW
IExtractImage
IExtractImage2
IFillLockBytes
IFolderFilter
IFolderFilterSite
IFolderView
IFolderViewHost; coclass FolderViewHost
IHlink
IHlinkBrowseContext
IHlinkFrame
IHlinkSite
IHlinkTarget
IHttpNegotiate
IHWEventHandler
IHWEventHandler2
IInputObject
IInputObjectSite
IInternetBindInfo
IInternetHostSecurityManager
IInternetPriority
IInternetProtocol
IInternetProtocolInfo
IInternetProtocolRoot
IInternetProtocolSink
IInternetSecurityManager
IInternetSecurityMgrSite
IInternetSession
IInternetZoneManager
IJolietDiscMaster
ILayoutStorage
ILockBytes
IMalloc
IMarshal
IMoniker
INetCrawler; coclass NetCrawler
INewShortcutHookA
INewShortcutHookW
IObjectSafety
IObjectWithSite
IOleCache
IOleClientSite
IOleCommandTarget
IOleContainer
IOleControl
IOleControlSite
IOleDocument
IOleDocumentSite
IOleDocumentView
IOleInPlaceActiveObject
IOleInPlaceFrame
IOleInPlaceObject
IOleInPlaceSite
IOleInPlaceUIWindow
IOleLink
IOleObject
IOleWindow
IParseDisplayName
IPerPropertyBrowsing
IPersist
IPersistFile; coclass ImageProperties
IPersistFolder
IPersistFolder2
IPersistIDList
IPersistMemory
IPersistMoniker
IPersistPropertyBag
IPersistPropertyBag2
IPersistStorage
IPersistStream
IPersistStreamInit
IPrint |
IProfferService
IProgressDialog
IPropertyBag
IPropertyBag2
IPropertyNotifySink
IPropertySetStorage
IPropertyStorage
IPropertyUI; coclass PropertiesUI
IProvideClassInfo
IProvideTaskPage
IPublishingWizard; coclass PublishingWizard
IQueryAssociations
IQueryCancelAutoPlay; coclass QueryCancelAutoPlay
IQueryContinue
IQueryInfo
IRecordInfo
IRedbookDiscMaster
IRichEditOle
IRichEditOleCallback
IRootStorage
IRunningObjectTable
IScheduledWorkItem
ISchedulingAgent
ISearchContext
ISequentialStream
IServiceProvider
IShellBrowser
IShellExecuteHookA
IShellExecuteHookW
IShellExtInit
IShellFolder2
IShellFolder
IShellIcon
IShellLinkA
IShellLinkW; coclass ShellLinkW
IShellPropSheetExt
IShellView2
IShellView
ISpecifyPropertyPages
IStorage
IStream
ISupportErrorInfo
ITaskbarList
ITaskbarList2
ITask
ITaskTrigger
ITextDocument
ITextFont
ITextPara
ITextRange
ITextSelection
ITextStoryRanges
ITypeComp
ITypeInfo
ITypeInfo2
ITypeLib
ITypeLib2
IUniformResourceLocatorA
IUniformResourceLocatorW
IUnknown (renamed IUnknownUnrestricted)
IUrlHistoryStg
IUrlHistoryStg2
IURLSearchHook
IURLSearchHook2
IUserEventTimer; coclass UserEventTimer
IUserEventTimerCallback; coclass UserEventTimerCallback
IUserNotification
IViewObject
IViewObject2
IWebWizardExtension; coclass WebWizardHost
IWindowForBindingUI
IWinInetHttpInfo
IWinInetInfo
IWizardExtension
IWizardSite |
Last edited by fafalone; Mar 15th, 2023 at 09:05 PM.
-
Oct 20th, 2022, 06:49 AM
#4
Re: [twinBASIC] tbShellLib - Shell Interface Library (x64-compatible successor to ole
Major Update (v2.0.20): The project has reached it's initial goal of implementing all but the most obsolete oleexp.tlb interfaces. In addition, with similar exception of a small set of highly obsolete items, the API coverage is now available. Note that this was subject to extensive cleanup; native-language declares can't use the last param as retval on APIs, so all of those were converted, and TLB APIs pass Strings as BSTR, while native language passes ANSI strings, so there's currently a mix of either using LongPtr or tB's DeclareWide for BSTR/LPWSTR support (if it says String you can use a String without StrPtr).
-
Nov 4th, 2022, 03:14 PM
#5
Re: [twinBASIC] tbShellLib - Shell Interface Library (x64-compatible successor to ole
Project Updated to v2.1.24
twinBASIC now supports in-project CoClass syntax! All coclasses from oleexp have been added (I think, if you find one missing please let me know), and can once again be used with the New keyword. The prior sCLSID constants have been left in. Also greatly expanded the API declare coverage to match what was in oleexp, though a few DLLs are still pending. Finally, tbShellLib now declares an compiler constant, TB_SHELLLIB_DEFINED, to help avoid conflicts with other projects (chiefly, my upcoming Common Controls 64-bit compatible library). tbShellLib now requires twinBASIC Beta 167 or newer.
-
Jan 26th, 2023, 02:52 PM
#6
Re: [twinBASIC] tbShellLib - Shell Interface Library (x64-compatible successor to ole
Project Updated to v2.4.48
Apologies for not keeping the version here up to date with GitHub, but I've updated it now as the latest version has a critical bug fix and a number of new interfaces.
Code:
pdate (v2.4.48):
-CRITICAL BUG FIX: IFolderView was missing GetDefaultSpacing, breaking any use of it and IFolderView2.
-Bug fix: IsEqualIID API declare was not marked PtrSafe.
-IServiceProvider did not use PreserveSig in the original oleexp, so that has been changed to match here, for use with Implements.
-Added IShellUIHelper[2,3,4,5,6,7,8,9], IShellFavoritesNameSpace, IShellNameSpace, IScriptErrorList and related coclasses.
-Added IDesktopWallpaper with coclass DesktopWallpaper
-Added IAppVisibility and IAppVisibilityEvents
-Added coclass AppStartupLink
-Added IApplicationActivationManager with coclass ApplicationActivationManager
-Added IContactManagerInterop, IAppActivationUIInfo, IHandlerActivationHost, IHandlerInfo, ILaunchSource*****erModelId, ILaunchTargetViewSizePreference, ILaunchSourceViewSizePreference, ILaunchTargetMonitor, IApplicationDesignModeSettings, IApplicationDesignModeSettings2, IExecuteCommandApplicationHostEnvironment, IPackageDebugSettings, IPackageDebugSettings2, IPackageExecutionStateChangeNotification, IDataObjectProvider, IDataTransferManagerInterop. -Added coclasses for above: PackageDebugSettings, SuspensionDependencyManager, ApplicationDesignModeSettings
tbShellLibImpl (v1.0): tbShellLib for Implements initial release. This does not cover all of oleexpimp.tlb because there's no need for an out only vs in, out distinction which many had as the only difference.
Update (v2.3.44): ICategoryProvider and ICategorizer had BSTR instead of LPWSTR (LongPtr) arguments.
Update (v2.3.40): Fixes for SHGetPathFromIDList[W] and IVirtualDesktopManager::IsWindowOnCurrentVirtualDesktop.
Update (v2.3.38): ICategorizer::GetCategory had apidl argument incorrectly defined as ByVal.
Update (v2.3.35): IShellIconOverlay had incorrect pIndex params in both methods. This didn't effect 32bit projects as pointers were the same size as the index.
Update (v2.3.32): Fixed GWL_* duplicate error and LARGE_INTEGER restored to hipart/lowpart for compatibility; ULARGE_INTEGER still uses quadpart if desired.
Update (v2.3.30): Fixed CM_COLUMNINFO bug since it was causing SetColumnInfo to trigger an automation error.
Update (v2.3.26): Minor bug fixes.
Update (v2.2.24): Added IWebBrowser2 interface I thought was already there.
-
Feb 2nd, 2023, 01:51 PM
#7
Re: [twinBASIC] tbShellLib - Shell Interface Library (x64-compatible successor to ole
Project Updated to v2.5.56
-Added Sync Manager interfaces and coclasses (SyncMgr.h), including undocumented ITransferConfirmation/coclass TransferConfirmationUI.
-Added interfaces IPersistSerializedPropStorage, IPersistSerializedPropStorage2, and IPropertySystemChangeNotify
-Added missing propsys coclasses CLSID_InMemoryPropertyStore, CLSID_InMemoryPropertyStoreMarshalByValue, CLSID_PropertySystem
-Added IListViewVista interface (Vista-only version of IListView)
-Added IPinnedList with variants IPinnedListVista (Windows Vista) and IPinnedList10 (Windows 10 build 1809 and newer). Also added IStartMenuPin, ITrayNotify and INotificationCB. These are undocumented taskbar interfaces for programmatically pinning items to the start menu and taskbar. Added TaskbandPin, TrayNotify, and StartMenuPin coclasses (the last one is officially documented for the IStartMenuPinnedList interface with remove pin only, but it implements the undocumented pinning interfaces too and those have been added to the supported list).
-Bug fix: Numerous enum values defined incorrectly as &H8000, causing sign issues in bitwise operations and downstream issues from that.
Last edited by fafalone; Feb 2nd, 2023 at 01:58 PM.
-
Feb 9th, 2023, 02:35 PM
#8
Re: [twinBASIC] tbShellLib - Shell Interface Library (x64-compatible successor to ole
Project Updated to v2.9.80:
-Substantially expanded Media Foundation set, also now includes all related GUIDs defined in mfidl.idl.
-Added basic Media Foundation interfaces from oleexp that were missing up until now.
-Fixed missing PtrSafe attributes and SwapVTable type errors.
- Added DXGI and DirectComposition interfaces (experimental).
-Shell automation intefaces using VARIANT_BOOL have been changed to Boolean to be more correct than Integer (the underlying typedef is short, which is why is was Integer at first).
-
Mar 1st, 2023, 06:11 AM
#9
Re: [twinBASIC] tbShellLib - Shell Interface Library (x64-compatible successor to ole
Latest Project Version: v3.2.30
There's been several new versions since last update here, including four major new features: Direct3D 11/12, all remaining Direct2D interfaces, the Microsoft Speech API interfaces v5.4 and the full set of WebView2 interfaces.
Here's full list:
(v3.2.30): Several Speech API interfaces were missing. Also, began using BOOL type as as enum with CFALSE (0) and CTRUE (1) members. I'll be slowly working on changing all the Long items that are actually BOOL to this over the coming months.
(v3.2.24): Numerous bugfixes to Speech API interfaces.
(v3.2.22): Missed some WebView2 interfaces that should have LongPtr instead of String; changed all String args to LongPtr just to be safe.
(v3.2.20): Bug fix: [out] LPWSTR* and [in] LPWSTR for Implements interfaces in WebView2 args changed to LongPtr. IEnumVARIANT was missed; added.
tbShellLibImpl (v1.2.6): Also was missing Implements version of IEnumVARIANT.
(v3.2.16): Added WebView2 (EXPERIMENTAL). Added IObjectProvider, IEnumObjects, and IIOCancelInformation interfaces.
(v3.1.14): Added Microsoft Speech APIs v5.4. Added IHttpNegotiate3.
(v3.0.13): -Added missing PROPSHEETHEADER and PROPSHEETHEADER_V2 types and PropSheet/PropSheetW APIs. Also corrected wrong values for PSN_TRANSLATEACCELERATOR/PSN_QUERYINITIALFOCUS.
-Began adding back in some Optionals in DirectX interfaces which weren't supported by MKTYPLIB so weren't in oleexp, where the tB code was generated from.
-(Bug fix) StringFromGUID2 now uses a Long instead of LPWSTR since the latter was not working.
-(Bug fix) D3D11CreateDevice and D3D11CreateDeviceAndSwapChain were declared incorrectly for 64bit compatibility (Softare param should be LongPtr).
(v3.0.10): Added all missing Direct2D interfaces/types/enums and corrected bugs in slDirectX.
(v2.9.90): EXPERIEMENTAL: Added Direct3D 11 and 12.
(v2.9.85):
-Bug fix: ITypeInfo::AddressOfMember returned Long instead of LongPtr (#11); ICreateTypeLib2 incorrectly extended IUnknown instead of ICreateTypeLib, and other misc bugfixes.
-Added objidl.idl interfaces IAdviseSink2, IClientSecurity, IServerSecurity, IMallocSpy, IClassActivator, IProgressNotify, IStdMarshalInfo, IExternalConnection and IThumbnailExtractor (w/coclass ThumbnailFCNHandler).
-Added undocmented hardware enum interfaces/coclasses.
(v2.9.81): Bug fix: ITypeLib::GetTypeInfoCount and several others never had [ PreserveSig ] restored after support was added.
Last edited by fafalone; Mar 1st, 2023 at 06:14 AM.
-
May 26th, 2023, 12:21 AM
#10
Re: [twinBASIC] tbShellLib - Shell Interface Library (x64-compatible successor to ole
Sorry I haven't kept this thread more up-to-date.
The current latest project version is 4.8.147.
Here's the changelog since the last post:
- Update (v4.8.147): The OPENFILENAME[A,W] definitions were, inexplicably, still incorrect even though I thought I modified them when I made the issue for the pending fix.
- Update (v4.8.146): The Common Controls API set did not conform to the project API standards at all; sometimes even within a single control's definitions. Be mindful if you've been using untagged aliases of A/W here. Numerous other small bug fixes. Many additional APIs.
- Update (v4.7.144): Numerous bug fixes, including changing all olepro32.dll APIs to oleaut32, as the former doesn't exist in 64bit Windows and the functions have been exported by the latter since Win2k. Also added another large batch of APIs, with a focus on GDI drawing.
- Update (v4.6.142): Some improvements/fixes to certain argument types in DirectX ifaces. Added a large number of font and text APIs in preparation for an upcoming project.
- Update (v4.6.139): Bug fix: DirectComposition uses numerous overloaded methods; it's apparently an undocumented compiler behavior that these appear in reverse order from their declarations in the v-table, so the order had to be swapped for all overloads. These are currently uniquely named rather than taking advantage of tB's overloading supporting until I hear back from Wayne about the internals of support/implementation for it.
- Update (v4.6.138): Several bug fixes, added misc commonly used APIs so far overlooked, and a number of additional APIs, focusing on registery, setup apis, and display settings apis.
- Update (v4.6.134): Critical bug fix: A second WM_USER was accidentally made Public, which would cause numerous ambiguity and constant expression errors in any project using it or a constant derived from it. Also added keyboard APIs and some misc common ones that had been overlooked.
- Update (v4.6.132): Numerous bug fixes related to string handling (ByRef LongPtrs that should have been ByVal), added another large batch of APIs.
- Update (v4.5.130): Some minor bug fixes, added IInputPaneAnimationCoordinator, added another batch of APIs (focused on GDI, thread synchronization, and activation contexts).
- Update (v4.5.128): A number of DirectX interfaces were incompatible with x64 due to ByVal UDTs; these were imported from VB6 declares as e.g. 2 ByVal Longs for a point, but that won't work on x64 because of an 8 byte stack alignment. To keep codebases simple, points now use a single LongLong for both 32 and 64 bit. You declare a LongLong to pass, then use CopyMemory to copy your D2D1_POINT_F or other type into it. Also added some more APIs.
- Update (v4.5.126): Added DirectComposition Presentation Manager interfaces, added additional APIs (focused on window management and file i/o), some minor bugfixes.
- Update (v4.4.124): Important bug fixes and additional APIs (GDI printing and window transparency).
- Update (v4.4.122):
-Critical bug fix for new tB builds (correctly) flagging Optional UDTs as errors.
-Added UI Ribbon interfaces, coclasses, and PKEYs. (UIRibbon.h).
-Added interface IContextCallback with coclass ContextSwitcher (and related APIs).
- Update (v4.3.120):
-Added Disk Quota interfaces IDiskQuotaControl (with coclass DiskQuotaControl), IDiskQuotaUser, IDiskQuotaUserBatch, IEnumDiskQuotaUsers, and IDiskQuotaEvents.
-Bug fixes for certain Optional issues
-Added missing Direct2D flag to enable color fonts
-Expanded APIs focusing on subclassing, file mapping, memory management, and NT objects.
- Update (v4.3.114): Important bug fixes for CreateThread (#14), other bug fixes including IDataObject:
Advise sink arg, and additional APIs.
- Update (v4.3.112): Added some base OLE/COM interfaces I feel were substantial oversights from both olelib and oleexp; IDataAdviseHolder, IOleAdviseHolder, IDropSourceNotify, IEnterpriseDropTarget, and IContinue.
- Update (v4.3.102):
-Added some missing base OLE/COM interfaces: IQuickActivate, IAdviseSinkEx, IPointerInactive, IOleUndoManager, IEnumOleUndoUnits, IOleParentUndoUnit, IOleUndoUnit, IViewObjectEx, IOleInPlaceSiteWindowless, IOleInPlaceSiteEx, IOleInPlaceObjectWindowless.
-Additional APIs, focused on desktop/winstation APIs and DPI awareness APIs.
- Update (v4.2.98): Numerous new APIs; some minor bugfixes.
- Update (v4.2.96): Added missing Core Audio interfaces/GUIDs. Significant API coverage expansion.
- Update (v4.1.94): Added Packaging API interfaces (msopc.idl). Added Netaddress control defs (newer version of old IP address control, msctls_netaddress; the old one, SysIPAddress32, is still there).
- Update (v4.0.93): Currency in new interfaces changed to LongLong.
- Update (v4.0.92):
-Completed Media Foundation interfaces up through the most recent Windows 11 SDK. This includes the capture engine and other entirely new feature sets.
-Added CoreAudio Spatial Audio interfaces (newer Win10 versions/Win11 only)
-Added IPropertyPage[2] and IPropertyPageSite interfaces.
-Added ISimpleFrameSite interface
-Bug fix: AUDCLNT_RETURNCODES were all incorrect.
- Update (v3.12.88): Added misc. interfaces IDelayedPropertyStoreFactory, IStorageProviderCopyHook, IDesktopGadget/Coclass DesktopGadget, IQueryCodePage, IStreamUnbufferedInfo, IUserAccountChangeCallback, IOpenSearchSource, IDestinationStreamFactory, ICreateProcessInputs, and ICreatingProcess. Continued adding APIs and Media Foundation interfaces.
- Update (v3.11.84, v3.11.86): Additional APIs and Media Foundation stuff.
- Update (V3.11.82): Additional API expansion for upcoming projects. Added Media Foundation / D3D12 sync interfaces/GUIDs. Added Media Foundation Capture Engine interfaces/GUIDs. Realized I actually have a ton more Media Foundation stuff not yet included.
- Update (v3.10.80): Additional API expansion for upcoming projects.
- Update (v3.10.72): Added a number of important APIs for upcoming projects. Added EP_* GUIDs for IExplorerPaneVisibility, added some missing SID_ guids. tbShellLib (v1.2.7): Added IMessageFilter. NOTE: tbShellLibImpl IS NOW WORKING! I hadn't realized the old VSCode plugin was continually refusing to save settings, thus ignoring the setting to disable the autoprettifying that didn't understand interfaces and thus ran together the declares, making them invalid. This has been fixed in 1.2.7.
- Update (v3.9.70): Reworked APIs to be more consistent when there's A/W versions. For most of these APIs, tbShellLib offers 3 versions: An explicit A version, an explicit W version, and an undecorated version that uses DeclareWide and String that's an alias for the W version. Some of the more advanced/newer APIs don't have the ANSI version declared. For APIs from oleexp/olelib without A/W but accepting strings, they've been left as LongPtr, but new ones added will use String. Also continued to add new APIs.
- Update (v3.8.66):
-Added IActiveScript and all related ActiveX Script Host / Engine interfaces
-Added IDispatchEx interface and related interfaces IDispError, IVariantChangeType, IProvideRuntimeContext, IObjectIdentity, and ICanHandleException
-Added IFileSearchBand, coclass FileSearchBand
-Corrected some Direct3D type names that got caught up in an autoreplace unintentionally.
-Misc bug fixes (Long->LongPtr, APIs pointing to wrong A/W version, missing A/W versions)
-Continued expanding API coverage.
- Update (v3.7.62): Added all remaining missing oleexp interfaces simply for completeness and not needing to qualify 'contains everything in oleexp'. IHostDialog/coclass HostDialog seemed like a major omission from those legacy interfaces so added it. Continued to substantially expand API coverage.
- Update (v3.6.56): Numerous bug fixes to IPinnedList[2,3], including their names: IPinnedListVista->IPinnedList, IPinnedList->IPinnedList2, IPinnedList10->IPinnedList3, to be more consistent with all other sources. Please do not abuse these interfaces: Never pin without permission. Added IWinEventHandler, IFolderBandPriv, and IAccessibleObject; added coclass TaskBand, and added numerous missing IIDs.
- Update (v3.6.54): Some items were Private that should have been Public; put SW_Flags back to SHOWWINDOW now that bug is resolved for compatibility purposes (SHOWWINDOW is in oleexp). To use this, twinBASIC Beta 269 or newer is needed. Misc bug fixes.
- Update (v3.6.52):
-By popular request to expand the API coverage, tbShellLib now has had tbComCtlLib merged into it. You can exclude these definitions with the TB_COMCTL_LIB_DEFINED compiler constant.
-Substantially expanded general API coverage.
-Misc bugfixes including renaming SHOWWINDOW enum to SW_Flags to work around a tB bug.
- Update (v3.5.48):
-Added accessibility UI Automation interfaces and APIs.
---NOTE: This API had a number of very generically named enums, like FillMode and ToggleState; these have been prefixed with Uia_ to avoid conflicts. In most cases, the actual members were left alone, with the exception of LiveSetting (renamed Uia_LiveSetting), which had Off, Polite, and Assertive; these have been prefixed with Uia_ as well.
---NOTE: IUIAutomation, IUIAutomationProxyFactoryMapping, IUIAutomationAndCondition and IUIAutomationOrCondition have members that use a SAFEARRAY of IUIAutomationCondition... MKTYPLIB does not support this so these return a pointer you'll need to dereference.
-The package now includes a common helper function for interfaces: SwapVTableEntry, updated for use in both 32bit and 64bit mode.
-Added misc interfaces ICurrentWorkingDirectory, IPropertyKeyStore, ISortColumnArray, and IBannerNotificationHandler
-Added IHandlerInfo2, IDeskBar, IDeskBarClient amd IShellFolderBand
-Began expanding general API coverage
- Update (v3.4.46): Added all GDIPlus APIs and all Common Dialog APIs.
- Update (v3.3.41): Bug fix: IExplorerBrowserEvents::NavigationFailed was misspelled.
- Update (v3.3.40): -Inexplicably, the IDeskBand, IDockingWindow, IDockingWindowFrame, and IDockingWindowSite interfaces were missing.
-Added ITrayBand, IDeskBand2, IDeskBandInfo, IBandHost, and IBandSite interfaces, IMenuBand, and coclasses TrayDeskBand, TrayBandSiteServices, and AddressBand.
-Added IRegTreeItem interface
-Added IPrintDialogCallback/IPrintDialogServices interfaces.
-Bug fix: Certain DirectWrite interface members had ByRef Long for strings where they should have had ByVal.
-Bug fix: SHELLSTATE had an extra member on the end (shouldn't have impacted use, but if MS changed the API to look for an exact size it would be an issue).
-Bug fix: Attempted to correct INameSpaceTreeControlEvents context menu crashing.
-Bug fix: INameSpaceTreeCustomDraw::ItemPrePaint was missing members.
You can obtain the latest version from the twinBASIC package server, or download from the repository. Detailed instructions for adding from the package server can be found here.
Tags for this Thread
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|