Note:Delphi / Free Pascal codeTJclOpenDialogFavoritesHookFFavoriteFoldersFTextAddFTextDeleteFTextVirtualFFavoriteComboBoxFFavoriteStaticTextFFavoritePanelFComboboxCountFComboboxVirtualItemFTextListFavoriteFoldersFavoriteComboBoxClick()DialogAdjustControlPos()DialogFolderChange()DialogShow()DialogClose()FileDialogCleanCombobox()FileDialogFillCombobox()FileDialogCreate()QueryInterface()_AddRef()_Release()OnFileOk()OnFolderChanging()OnFolderChange()OnSelectionChange()OnShareViolation()OnTypeChange()OnOverwrite()OnItemSelected()OnButtonClicked()OnCheckButtonToggled()OnControlActivating()Create()Destroy()LoadFavorites()OnFileOkOnFolderChange---This seems really simple.function TJclOpenDialogFavoritesHook.OnFileOk(const pfd: IFileDialog): HResult;beginResult := S_OK;end;defOnFileOk()The declaration isfunction TJclOpenDialogFavoritesHook.OnFolderChange(const pfd: IFileDialog): HResult;Failure is handled sort of like:..if not Succeeded(ppsi.GetDisplayName(SIGDN_FILESYSPATH, Path)) thenPath := nil;..defOnFolderChange()TJclOpenDialogHook«module»JclOpenDialogFavorites_pasFileTypeStaticTextRectFileTypeEditRectFileNameStaticTextRectFileNameEditRectPathIFileDialogCustomizeUnusedpfdcppsiItemIndexpfdInitializeOpenDialogFavorites()FinalizeOpenDialogFavorites()GetDlgItemRect()EJclPrinterErrorFDeviceFDriverFPortFHandleFPrinterFBinArrayFNumBinsFPaperArrayFNumPapersFDpiXFiDpiYOrientationPaperSizePaperLengthPaperWidthScaleCopiesDefaultSourcePrintQualityColorDuplexYResolutionTrueTypeOptionPrinterNamePrinterPortPrinterDriverBinIndexDevModePrinterDriverVersionDevModePrinterDriverDevModePrinterDriverExtraPaperIndexDpiXDpiYCheckPrinter()SetBinArray()SetPaperArray()DefaultPaperName()GetDevModePrinterDriverVersion()GetDevModePrinterDriver()GetDevModePrinterDriverExtra()LockDeviceMode()SetDeviceMode()SetPrinterName()UnlockDeviceMode()SetOrientation()GetOrientation()SetPaperSize()GetPaperSize()SetPaperLength()GetPaperLength()SetPaperWidth()GetPaperWidth()SetScale()GetScale()SetCopies()GetCopies()SetBin()GetBin()SetPrintQuality()GetPrintQuality()SetColor()GetColor()SetDuplex()GetDuplex()SetYResolution()GetYResolution()SetTrueTypeOption()GetTrueTypeOption()GetPrinterName()GetPrinterPort()GetPrinterDriver()SetBinFromList()GetBinIndex()SetPaperFromList()GetPaperIndex()ReadFromCustomIni()SaveToCustomIni()SetPort()DevModePrinterDriverExtraReinstate()Create()Destroy()GetBinSourceList()GetPaperList()UpdateDeviceMode()SaveToDefaults()SavePrinterAsDefault()ResetPrinterDialogs()XInchToDot()YInchToDot()XCmToDot()YCmToDot()CpiToDot()LpiToDot()TextOutInch()TextOutCm()TextOutCpiLpi()CustomPageSetup()DevModePrinterDriverExtraClear()SaveToIniFile()ReadFromIniFile()TObject«module»JclPrint_pasCCHBinNameCCHPaperNameCBinMaxCPaperNamesPrinterHandleDocInfoBytesWrittenCountDefaultsDirectPrint()SetPrinterPixelsPerInch()GetPrinterResolution()CharFitsWithinDots()CanvasMemoOut()PrintMemo()GetDefaultPrinterName()DPGetDefaultPrinter()DPSetDefaultPrinter()TJclPrintSet()containscontainsGenerated by GitUml www.gituml.com