durs / node-activex

Node.JS Implementaion of ActiveXObject
MIT License
329 stars 62 forks source link

All Methods push fix #72

Closed Cupidazul closed 4 years ago

durs commented 4 years ago

This is a pointless operation because info is the same as ppTinfo (info == ppTinfo)

info->GetContainingTypeLib(&typelib, &typeindex)
typelib->GetTypeInfo(typeindex, &ppTinfo);
Cupidazul commented 4 years ago

hi Durs, in fact, if you test it, you'll find out that they are not the same. the information that is returned in "ppTinfo" is more extensive when we retrieve all methods .

info->GetContainingTypeLib(&typelib, &typeindex) typelib->GetTypeInfo(typeindex, &ppTinfo);

in these two lines of code we fetch the 'parent' TypeInfo ... then we use 'ppTinfo' instead of just 'info': TypeInfoPrepareFunc(ppTinfo, n, process); TypeInfoPrepareFunc(info, n, process);

also 'typeindex' plays an important role here, it is retuned by GetContainingTypeLib. my test results are very different, before, and after the patch, the '__methods' object is increased by allot !

I would agree with you that (info == ppTinfo), but if you test it, you'll see for yourself. I know, it sounds strange. but it works like magic.

durs commented 4 years ago

I checked the Excel.Application object, but did not find the difference, and then looked at the values of memory addresses, they match (in the VC++ debugger), which is quite logical

вт, 14 апр. 2020 г. в 13:45, Cupid@zul notifications@github.com:

hi Durs, in fact, if you test it, you'll find out that they are not the same. the information that is returned in "ppTinfo" is more extensive when we retrieve all methods .

info->GetContainingTypeLib(&typelib, &typeindex) typelib->GetTypeInfo(typeindex, &ppTinfo);

in these two lines of code we fetch the 'parent' TypeInfo ... thene use 'ppTinfo' instead of just 'info': TypeInfoPrepareFunc(ppTinfo, n, process); TypeInfoPrepareFunc(info, n, process);

my test results are very different, before, and after the patch, the '__methods' object is increased by allot !

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/durs/node-activex/pull/72#issuecomment-613365681, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEMMNMBSHEFYWQJTSDXQ4TRMQ5ETANCNFSM4MG3PCRQ .

Cupidazul commented 4 years ago

have you tried the "InternetExplorer.Application" ? I'll try the 'Excel.Application' here.

Cupidazul commented 4 years ago

I see what you mean... you are correct, for the Excel.Application there is no change. But for InternetExplorer.Application there is. bellow my tests.

var appIe = module.exports.ActiveXObject('Excel.Application'); BEFORE and AFTER, ok : 327 methods.

__methods: { QueryInterface: [Object], AddRef: [Object], Release: [Object], GetTypeInfoCount: [Object], GetTypeInfo: [Object], GetIDsOfNames: [Object], Invoke: [Object], Application: [Object], Creator: [Object], Parent: [Object], ActiveCell: [Object], ActiveChart: [Object], ActiveDialog: [Object], ActiveMenuBar: [Object], ActivePrinter: [Object], ActiveSheet: [Object], ActiveWindow: [Object], ActiveWorkbook: [Object], AddIns: [Object], Assistant: [Object], Calculate: [Object], Cells: [Object], Charts: [Object], Columns: [Object], CommandBars: [Object], DDEAppReturnCode: [Object], DDEExecute: [Object], DDEInitiate: [Object], DDEPoke: [Object], DDERequest: [Object], DDETerminate: [Object], DialogSheets: [Object], Evaluate: [Object], _Evaluate: [Object], ExecuteExcel4Macro: [Object], Intersect: [Object], MenuBars: [Object], Modules: [Object], Names: [Object], Range: [Object], Rows: [Object], Run: [Object], _Run2: [Object], Selection: [Object], SendKeys: [Object], Sheets: [Object], ShortcutMenus: [Object], ThisWorkbook: [Object], Toolbars: [Object], Union: [Object], Windows: [Object], Workbooks: [Object], WorksheetFunction: [Object], Worksheets: [Object], Excel4IntlMacroSheets: [Object], Excel4MacroSheets: [Object], ActivateMicrosoftApp: [Object], AddChartAutoFormat: [Object], AddCustomList: [Object], AlertBeforeOverwriting: [Object], AltStartupPath: [Object], AskToUpdateLinks: [Object], EnableAnimations: [Object], AutoCorrect: [Object], Build: [Object], CalculateBeforeSave: [Object], Calculation: [Object], Caller: [Object], CanPlaySounds: [Object], CanRecordSounds: [Object], Caption: [Object], CellDragAndDrop: [Object], CentimetersToPoints: [Object], CheckSpelling: [Object], ClipboardFormats: [Object], DisplayClipboardWindow: [Object], ColorButtons: [Object], CommandUnderlines: [Object], ConstrainNumeric: [Object], ConvertFormula: [Object], CopyObjectsWithCells: [Object], Cursor: [Object], CustomListCount: [Object], CutCopyMode: [Object], DataEntryMode: [Object], Dummy1: [Object], Dummy2: [Object], Dummy3: [Object], Dummy4: [Object], Dummy5: [Object], Dummy6: [Object], Dummy7: [Object], Dummy8: [Object], Dummy9: [Object], Dummy10: [Object], Dummy11: [Object], _Default: [Object], DefaultFilePath: [Object], DeleteChartAutoFormat: [Object], DeleteCustomList: [Object], Dialogs: [Object], DisplayAlerts: [Object], DisplayFormulaBar: [Object], DisplayFullScreen: [Object], DisplayNoteIndicator: [Object], DisplayCommentIndicator: [Object], DisplayExcel4Menus: [Object], DisplayRecentFiles: [Object], DisplayScrollBars: [Object], DisplayStatusBar: [Object], DoubleClick: [Object], EditDirectlyInCell: [Object], EnableAutoComplete: [Object], EnableCancelKey: [Object], EnableSound: [Object], EnableTipWizard: [Object], FileConverters: [Object], FileSearch: [Object], FileFind: [Object], _FindFile: [Object], FixedDecimal: [Object], FixedDecimalPlaces: [Object], GetCustomListContents: [Object], GetCustomListNum: [Object], GetOpenFilename: [Object], GetSaveAsFilename: [Object], Goto: [Object], Height: [Object], Help: [Object], IgnoreRemoteRequests: [Object], InchesToPoints: [Object], InputBox: [Object], Interactive: [Object], International: [Object], Iteration: [Object], LargeButtons: [Object], Left: [Object], LibraryPath: [Object], _MacroOptions: [Object], MailLogoff: [Object], MailLogon: [Object], MailSession: [Object], MailSystem: [Object], MathCoprocessorAvailable: [Object], MaxChange: [Object], MaxIterations: [Object], MemoryFree: [Object], MemoryTotal: [Object], MemoryUsed: [Object], MouseAvailable: [Object], MoveAfterReturn: [Object], MoveAfterReturnDirection: [Object], RecentFiles: [Object], Name: [Object], NextLetter: [Object], NetworkTemplatesPath: [Object], ODBCErrors: [Object], ODBCTimeout: [Object], OnCalculate: [Object], OnData: [Object], OnDoubleClick: [Object], OnEntry: [Object], OnKey: [Object], OnRepeat: [Object], OnSheetActivate: [Object], OnSheetDeactivate: [Object], OnTime: [Object], OnUndo: [Object], OnWindow: [Object], OperatingSystem: [Object], OrganizationName: [Object], Path: [Object], PathSeparator: [Object], PreviousSelections: [Object], PivotTableSelection: [Object], PromptForSummaryInfo: [Object], Quit: [Object], RecordMacro: [Object], RecordRelative: [Object], ReferenceStyle: [Object], RegisteredFunctions: [Object], RegisterXLL: [Object], Repeat: [Object], ResetTipWizard: [Object], RollZoom: [Object], Save: [Object], SaveWorkspace: [Object], ScreenUpdating: [Object], SetDefaultChart: [Object], SheetsInNewWorkbook: [Object], ShowChartTipNames: [Object], ShowChartTipValues: [Object], StandardFont: [Object], StandardFontSize: [Object], StartupPath: [Object], StatusBar: [Object], TemplatesPath: [Object], ShowToolTips: [Object], Top: [Object], DefaultSaveFormat: [Object], TransitionMenuKey: [Object], TransitionMenuKeyAction: [Object], TransitionNavigKeys: [Object], Undo: [Object], UsableHeight: [Object], UsableWidth: [Object], UserControl: [Object], UserName: [Object], Value: [Object], VBE: [Object], Version: [Object], Visible: [Object], Volatile: [Object], _Wait: [Object], Width: [Object], WindowsForPens: [Object], WindowState: [Object], UILanguage: [Object], DefaultSheetDirection: [Object], CursorMovement: [Object], ControlCharacters: [Object], _WSFunction: [Object], EnableEvents: [Object], DisplayInfoWindow: [Object], Wait: [Object], ExtendList: [Object], OLEDBErrors: [Object], GetPhonetic: [Object], COMAddIns: [Object], DefaultWebOptions: [Object], ProductCode: [Object], UserLibraryPath: [Object], AutoPercentEntry: [Object], LanguageSettings: [Object], Dummy101: [Object], Dummy12: [Object], AnswerWizard: [Object], CalculateFull: [Object], FindFile: [Object], CalculationVersion: [Object], ShowWindowsInTaskbar: [Object], FeatureInstall: [Object], Ready: [Object], Dummy13: [Object], FindFormat: [Object], ReplaceFormat: [Object], UsedObjects: [Object], CalculationState: [Object], CalculationInterruptKey: [Object], Watches: [Object], DisplayFunctionToolTips: [Object], AutomationSecurity: [Object], FileDialog: [Object], Dummy14: [Object], CalculateFullRebuild: [Object], DisplayPasteOptions: [Object], DisplayInsertOptions: [Object], GenerateGetPivotData: [Object], AutoRecover: [Object], Hwnd: [Object], Hinstance: [Object], CheckAbort: [Object], ErrorCheckingOptions: [Object], AutoFormatAsYouTypeReplaceHyperlinks: [Object], SmartTagRecognizers: [Object], NewWorkbook: [Object], SpellingOptions: [Object], Speech: [Object], MapPaperSize: [Object], ShowStartupDialog: [Object], DecimalSeparator: [Object], ThousandsSeparator: [Object], UseSystemSeparators: [Object], ThisCell: [Object], RTD: [Object], DisplayDocumentActionTaskPane: [Object], DisplayXMLSourcePane: [Object], ArbitraryXMLSupportAvailable: [Object], Support: [Object], Dummy20: [Object], MeasurementUnit: [Object], ShowSelectionFloaties: [Object], ShowMenuFloaties: [Object], ShowDevTools: [Object], EnableLivePreview: [Object], DisplayDocumentInformationPanel: [Object], AlwaysUseClearType: [Object], WarnOnFunctionNameConflict: [Object], FormulaBarHeight: [Object], DisplayFormulaAutoComplete: [Object], GenerateTableRefs: [Object], Assistance: [Object], CalculateUntilAsyncQueriesDone: [Object], EnableLargeOperationAlert: [Object], LargeOperationCellThousandCount: [Object], DeferAsyncQueries: [Object], MultiThreadedCalculation: [Object], SharePointVersion: [Object], ActiveEncryptionSession: [Object], HighQualityModeForGraphics: [Object], FileExportConverters: [Object], SmartArtLayouts: [Object], SmartArtQuickStyles: [Object], SmartArtColors: [Object], AddIns2: [Object], PrintCommunication: [Object], MacroOptions: [Object], UseClusterConnector: [Object], ClusterConnector: [Object], Quitting: [Object], Dummy22: [Object], Dummy23: [Object], ProtectedViewWindows: [Object], ActiveProtectedViewWindow: [Object], IsSandboxed: [Object], SaveISO8601Dates: [Object], HinstancePtr: [Object], FileValidation: [Object], FileValidationPivot: [Object], ShowQuickAnalysis: [Object], QuickAnalysis: [Object], FlashFill: [Object], EnableMacroAnimations: [Object], ChartDataPointTrack: [Object], FlashFillMode: [Object], MergeInstances: [Object], EnableCheckFileExtensions: [Object] },

var appIe = module.exports.ActiveXObject('InternetExplorer.Application.1'); BEFORE: 12 methods __methods: { Navigate2: [Object], QueryStatusWB: [Object], ExecWB: [Object], ShowBrowserBar: [Object], ReadyState: [Object], Offline: [Object], Silent: [Object], RegisterAsBrowser: [Object], RegisterAsDropTarget: [Object], TheaterMode: [Object], AddressBar: [Object], Resizable: [Object] },

AFTER: 54 methods __methods: { QueryInterface: [Object], AddRef: [Object], Release: [Object], GetTypeInfoCount: [Object], GetTypeInfo: [Object], GetIDsOfNames: [Object], Invoke: [Object], GoBack: [Object], GoForward: [Object], GoHome: [Object], GoSearch: [Object], Navigate: [Object], Refresh: [Object], Refresh2: [Object], Stop: [Object], Application: [Object], Parent: [Object], Container: [Object], Document: [Object], TopLevelContainer: [Object], Type: [Object], Left: [Object], Top: [Object], Width: [Object], Height: [Object], LocationName: [Object], LocationURL: [Object], Busy: [Object], Quit: [Object], ClientToWindow: [Object], PutProperty: [Object], GetProperty: [Object], Name: [Object], HWND: [Object], FullName: [Object], Path: [Object], Visible: [Object], StatusBar: [Object], StatusText: [Object], ToolBar: [Object], MenuBar: [Object], FullScreen: [Object], Navigate2: [Object], QueryStatusWB: [Object], ExecWB: [Object], ShowBrowserBar: [Object], ReadyState: [Object], Offline: [Object], Silent: [Object], RegisterAsBrowser: [Object], RegisterAsDropTarget: [Object], TheaterMode: [Object], AddressBar: [Object], Resizable: [Object] },

durs commented 4 years ago

OK, there really is a noticeable difference on the InternetExplorer object

on InternetExplorer.Application methods 71 vs 19 but on Excel.Application methods 467 vs 467 and same pointer

[image: image.png]

вт, 14 апр. 2020 г. в 14:27, Cupid@zul notifications@github.com:

I see what you mean... you are correct, for the Excel.Application there is no change. But for InternetExplorer.Application there is. bellow my tests.

var appIe = module.exports.ActiveXObject('Excel.Application'); BEFORE and AFTER, ok : 327 methods.

__methods: { QueryInterface: [Object], AddRef: [Object], Release: [Object], GetTypeInfoCount: [Object], GetTypeInfo: [Object], GetIDsOfNames: [Object], Invoke: [Object], Application: [Object], Creator: [Object], Parent: [Object], ActiveCell: [Object], ActiveChart: [Object], ActiveDialog: [Object], ActiveMenuBar: [Object], ActivePrinter: [Object], ActiveSheet: [Object], ActiveWindow: [Object], ActiveWorkbook: [Object], AddIns: [Object], Assistant: [Object], Calculate: [Object], Cells: [Object], Charts: [Object], Columns: [Object], CommandBars: [Object], DDEAppReturnCode: [Object], DDEExecute: [Object], DDEInitiate: [Object], DDEPoke: [Object], DDERequest: [Object], DDETerminate: [Object], DialogSheets: [Object], Evaluate: [Object], _Evaluate: [Object], ExecuteExcel4Macro: [Object], Intersect: [Object], MenuBars: [Object], Modules: [Object], Names: [Object], Range: [Object], Rows: [Object], Run: [Object], _Run2: [Object], Selection: [Object], SendKeys: [Object], Sheets: [Object], ShortcutMenus: [Object], ThisWorkbook: [Object], Toolbars: [Object], Union: [Object], Windows: [Object], Workbooks: [Object], WorksheetFunction: [Object], Worksheets: [Object], Excel4IntlMacroSheets: [Object], Excel4MacroSheets: [Object], ActivateMicrosoftApp: [Object], AddChartAutoFormat: [Object], AddCustomList: [Object], AlertBeforeOverwriting: [Object], AltStartupPath: [Object], AskToUpdateLinks: [Object], EnableAnimations: [Object], AutoCorrect: [Object], Build: [Object], CalculateBeforeSave: [Object], Calculation: [Object], Caller: [Object], CanPlaySounds: [Object], CanRecordSounds: [Object], Caption: [Object], CellDragAndDrop: [Object], CentimetersToPoints: [Object], CheckSpelling: [Object], ClipboardFormats: [Object], DisplayClipboardWindow: [Object], ColorButtons: [Object], CommandUnderlines: [Object], ConstrainNumeric: [Object], ConvertFormula: [Object], CopyObjectsWithCells: [Object], Cursor: [Object], CustomListCount: [Object], CutCopyMode: [Object], DataEntryMode: [Object], Dummy1: [Object], Dummy2: [Object], Dummy3: [Object], Dummy4: [Object], Dummy5: [Object], Dummy6: [Object], Dummy7: [Object], Dummy8: [Object], Dummy9: [Object], Dummy10: [Object], Dummy11: [Object], _Default: [Object], DefaultFilePath: [Object], DeleteChartAutoFormat: [Object], DeleteCustomList: [Object], Dialogs: [Object], DisplayAlerts: [Object], DisplayFormulaBar: [Object], DisplayFullScreen: [Object], DisplayNoteIndicator: [Object], DisplayCommentIndicator: [Object], DisplayExcel4Menus: [Object], DisplayRecentFiles: [Object], DisplayScrollBars: [Object], DisplayStatusBar: [Object], DoubleClick: [Object], EditDirectlyInCell: [Object], EnableAutoComplete: [Object], EnableCancelKey: [Object], EnableSound: [Object], EnableTipWizard: [Object], FileConverters: [Object], FileSearch: [Object], FileFind: [Object], _FindFile: [Object], FixedDecimal: [Object], FixedDecimalPlaces: [Object], GetCustomListContents: [Object], GetCustomListNum: [Object], GetOpenFilename: [Object], GetSaveAsFilename: [Object], Goto: [Object], Height: [Object], Help: [Object], IgnoreRemoteRequests: [Object], InchesToPoints: [Object], InputBox: [Object], Interactive: [Object], International: [Object], Iteration: [Object], LargeButtons: [Object], Left: [Object], LibraryPath: [Object], _MacroOptions: [Object], MailLogoff: [Object], MailLogon: [Object], MailSession: [Object], MailSystem: [Object], MathCoprocessorAvailable: [Object], MaxChange: [Object], MaxIterations: [Object], MemoryFree: [Object], MemoryTotal: [Object], MemoryUsed: [Object], MouseAvailable: [Object], MoveAfterReturn: [Object], MoveAfterReturnDirection: [Object], RecentFiles: [Object], Name: [Object], NextLetter: [Object], NetworkTemplatesPath: [Object], ODBCErrors: [Object], ODBCTimeout: [Object], OnCalculate: [Object], OnData: [Object], OnDoubleClick: [Object], OnEntry: [Object], OnKey: [Object], OnRepeat: [Object], OnSheetActivate: [Object], OnSheetDeactivate: [Object], OnTime: [Object], OnUndo: [Object], OnWindow: [Object], OperatingSystem: [Object], OrganizationName: [Object], Path: [Object], PathSeparator: [Object], PreviousSelections: [Object], PivotTableSelection: [Object], PromptForSummaryInfo: [Object], Quit: [Object], RecordMacro: [Object], RecordRelative: [Object], ReferenceStyle: [Object], RegisteredFunctions: [Object], RegisterXLL: [Object], Repeat: [Object], ResetTipWizard: [Object], RollZoom: [Object], Save: [Object], SaveWorkspace: [Object], ScreenUpdating: [Object], SetDefaultChart: [Object], SheetsInNewWorkbook: [Object], ShowChartTipNames: [Object], ShowChartTipValues: [Object], StandardFont: [Object], StandardFontSize: [Object], StartupPath: [Object], StatusBar: [Object], TemplatesPath: [Object], ShowToolTips: [Object], Top: [Object], DefaultSaveFormat: [Object], TransitionMenuKey: [Object], TransitionMenuKeyAction: [Object], TransitionNavigKeys: [Object], Undo: [Object], UsableHeight: [Object], UsableWidth: [Object], UserControl: [Object], UserName: [Object], Value: [Object], VBE: [Object], Version: [Object], Visible: [Object], Volatile: [Object], _Wait: [Object], Width: [Object], WindowsForPens: [Object], WindowState: [Object], UILanguage: [Object], DefaultSheetDirection: [Object], CursorMovement: [Object], ControlCharacters: [Object], _WSFunction: [Object], EnableEvents: [Object], DisplayInfoWindow: [Object], Wait: [Object], ExtendList: [Object], OLEDBErrors: [Object], GetPhonetic: [Object], COMAddIns: [Object], DefaultWebOptions: [Object], ProductCode: [Object], UserLibraryPath: [Object], AutoPercentEntry: [Object], LanguageSettings: [Object], Dummy101: [Object], Dummy12: [Object], AnswerWizard: [Object], CalculateFull: [Object], FindFile: [Object], CalculationVersion: [Object], ShowWindowsInTaskbar: [Object], FeatureInstall: [Object], Ready: [Object], Dummy13: [Object], FindFormat: [Object], ReplaceFormat: [Object], UsedObjects: [Object], CalculationState: [Object], CalculationInterruptKey: [Object], Watches: [Object], DisplayFunctionToolTips: [Object], AutomationSecurity: [Object], FileDialog: [Object], Dummy14: [Object], CalculateFullRebuild: [Object], DisplayPasteOptions: [Object], DisplayInsertOptions: [Object], GenerateGetPivotData: [Object], AutoRecover: [Object], Hwnd: [Object], Hinstance: [Object], CheckAbort: [Object], ErrorCheckingOptions: [Object], AutoFormatAsYouTypeReplaceHyperlinks: [Object], SmartTagRecognizers: [Object], NewWorkbook: [Object], SpellingOptions: [Object], Speech: [Object], MapPaperSize: [Object], ShowStartupDialog: [Object], DecimalSeparator: [Object], ThousandsSeparator: [Object], UseSystemSeparators: [Object], ThisCell: [Object], RTD: [Object], DisplayDocumentActionTaskPane: [Object], DisplayXMLSourcePane: [Object], ArbitraryXMLSupportAvailable: [Object], Support: [Object], Dummy20: [Object], MeasurementUnit: [Object], ShowSelectionFloaties: [Object], ShowMenuFloaties: [Object], ShowDevTools: [Object], EnableLivePreview: [Object], DisplayDocumentInformationPanel: [Object], AlwaysUseClearType: [Object], WarnOnFunctionNameConflict: [Object], FormulaBarHeight: [Object], DisplayFormulaAutoComplete: [Object], GenerateTableRefs: [Object], Assistance: [Object], CalculateUntilAsyncQueriesDone: [Object], EnableLargeOperationAlert: [Object], LargeOperationCellThousandCount: [Object], DeferAsyncQueries: [Object], MultiThreadedCalculation: [Object], SharePointVersion: [Object], ActiveEncryptionSession: [Object], HighQualityModeForGraphics: [Object], FileExportConverters: [Object], SmartArtLayouts: [Object], SmartArtQuickStyles: [Object], SmartArtColors: [Object], AddIns2: [Object], PrintCommunication: [Object], MacroOptions: [Object], UseClusterConnector: [Object], ClusterConnector: [Object], Quitting: [Object], Dummy22: [Object], Dummy23: [Object], ProtectedViewWindows: [Object], ActiveProtectedViewWindow: [Object], IsSandboxed: [Object], SaveISO8601Dates: [Object], HinstancePtr: [Object], FileValidation: [Object], FileValidationPivot: [Object], ShowQuickAnalysis: [Object], QuickAnalysis: [Object], FlashFill: [Object], EnableMacroAnimations: [Object], ChartDataPointTrack: [Object], FlashFillMode: [Object], MergeInstances: [Object], EnableCheckFileExtensions: [Object] },

var appIe = module.exports.ActiveXObject('InternetExplorer.Application.1'); BEFORE: 12 methods __methods: { Navigate2: [Object], QueryStatusWB: [Object], ExecWB: [Object], ShowBrowserBar: [Object], ReadyState: [Object], Offline: [Object], Silent: [Object], RegisterAsBrowser: [Object], RegisterAsDropTarget: [Object], TheaterMode: [Object], AddressBar: [Object], Resizable: [Object] },

AFTER: 54 methods __methods: { QueryInterface: [Object], AddRef: [Object], Release: [Object], GetTypeInfoCount: [Object], GetTypeInfo: [Object], GetIDsOfNames: [Object], Invoke: [Object], GoBack: [Object], GoForward: [Object], GoHome: [Object], GoSearch: [Object], Navigate: [Object], Refresh: [Object], Refresh2: [Object], Stop: [Object], Application: [Object], Parent: [Object], Container: [Object], Document: [Object], TopLevelContainer: [Object], Type: [Object], Left: [Object], Top: [Object], Width: [Object], Height: [Object], LocationName: [Object], LocationURL: [Object], Busy: [Object], Quit: [Object], ClientToWindow: [Object], PutProperty: [Object], GetProperty: [Object], Name: [Object], HWND: [Object], FullName: [Object], Path: [Object], Visible: [Object], StatusBar: [Object], StatusText: [Object], ToolBar: [Object], MenuBar: [Object], FullScreen: [Object], Navigate2: [Object], QueryStatusWB: [Object], ExecWB: [Object], ShowBrowserBar: [Object], ReadyState: [Object], Offline: [Object], Silent: [Object], RegisterAsBrowser: [Object], RegisterAsDropTarget: [Object], TheaterMode: [Object], AddressBar: [Object], Resizable: [Object] },

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/durs/node-activex/pull/72#issuecomment-613385473, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEMMNNATRPEVCE672IC7MTRMRCAVANCNFSM4MG3PCRQ .

durs commented 4 years ago

If enumerate all types in type library: TypeLibEnumerate(typelib, mode, process); can load all constants, but it`s may be very slow for this you need a special method

вт, 14 апр. 2020 г. в 15:23, Yuri Dursin yuri.dursin@gmail.com:

OK, there really is a noticeable difference on the InternetExplorer object

on InternetExplorer.Application methods 71 vs 19 but on Excel.Application methods 467 vs 467 and same pointer

[image: image.png]

вт, 14 апр. 2020 г. в 14:27, Cupid@zul notifications@github.com:

I see what you mean... you are correct, for the Excel.Application there is no change. But for InternetExplorer.Application there is. bellow my tests.

var appIe = module.exports.ActiveXObject('Excel.Application'); BEFORE and AFTER, ok : 327 methods.

__methods: { QueryInterface: [Object], AddRef: [Object], Release: [Object], GetTypeInfoCount: [Object], GetTypeInfo: [Object], GetIDsOfNames: [Object], Invoke: [Object], Application: [Object], Creator: [Object], Parent: [Object], ActiveCell: [Object], ActiveChart: [Object], ActiveDialog: [Object], ActiveMenuBar: [Object], ActivePrinter: [Object], ActiveSheet: [Object], ActiveWindow: [Object], ActiveWorkbook: [Object], AddIns: [Object], Assistant: [Object], Calculate: [Object], Cells: [Object], Charts: [Object], Columns: [Object], CommandBars: [Object], DDEAppReturnCode: [Object], DDEExecute: [Object], DDEInitiate: [Object], DDEPoke: [Object], DDERequest: [Object], DDETerminate: [Object], DialogSheets: [Object], Evaluate: [Object], _Evaluate: [Object], ExecuteExcel4Macro: [Object], Intersect: [Object], MenuBars: [Object], Modules: [Object], Names: [Object], Range: [Object], Rows: [Object], Run: [Object], _Run2: [Object], Selection: [Object], SendKeys: [Object], Sheets: [Object], ShortcutMenus: [Object], ThisWorkbook: [Object], Toolbars: [Object], Union: [Object], Windows: [Object], Workbooks: [Object], WorksheetFunction: [Object], Worksheets: [Object], Excel4IntlMacroSheets: [Object], Excel4MacroSheets: [Object], ActivateMicrosoftApp: [Object], AddChartAutoFormat: [Object], AddCustomList: [Object], AlertBeforeOverwriting: [Object], AltStartupPath: [Object], AskToUpdateLinks: [Object], EnableAnimations: [Object], AutoCorrect: [Object], Build: [Object], CalculateBeforeSave: [Object], Calculation: [Object], Caller: [Object], CanPlaySounds: [Object], CanRecordSounds: [Object], Caption: [Object], CellDragAndDrop: [Object], CentimetersToPoints: [Object], CheckSpelling: [Object], ClipboardFormats: [Object], DisplayClipboardWindow: [Object], ColorButtons: [Object], CommandUnderlines: [Object], ConstrainNumeric: [Object], ConvertFormula: [Object], CopyObjectsWithCells: [Object], Cursor: [Object], CustomListCount: [Object], CutCopyMode: [Object], DataEntryMode: [Object], Dummy1: [Object], Dummy2: [Object], Dummy3: [Object], Dummy4: [Object], Dummy5: [Object], Dummy6: [Object], Dummy7: [Object], Dummy8: [Object], Dummy9: [Object], Dummy10: [Object], Dummy11: [Object], _Default: [Object], DefaultFilePath: [Object], DeleteChartAutoFormat: [Object], DeleteCustomList: [Object], Dialogs: [Object], DisplayAlerts: [Object], DisplayFormulaBar: [Object], DisplayFullScreen: [Object], DisplayNoteIndicator: [Object], DisplayCommentIndicator: [Object], DisplayExcel4Menus: [Object], DisplayRecentFiles: [Object], DisplayScrollBars: [Object], DisplayStatusBar: [Object], DoubleClick: [Object], EditDirectlyInCell: [Object], EnableAutoComplete: [Object], EnableCancelKey: [Object], EnableSound: [Object], EnableTipWizard: [Object], FileConverters: [Object], FileSearch: [Object], FileFind: [Object], _FindFile: [Object], FixedDecimal: [Object], FixedDecimalPlaces: [Object], GetCustomListContents: [Object], GetCustomListNum: [Object], GetOpenFilename: [Object], GetSaveAsFilename: [Object], Goto: [Object], Height: [Object], Help: [Object], IgnoreRemoteRequests: [Object], InchesToPoints: [Object], InputBox: [Object], Interactive: [Object], International: [Object], Iteration: [Object], LargeButtons: [Object], Left: [Object], LibraryPath: [Object], _MacroOptions: [Object], MailLogoff: [Object], MailLogon: [Object], MailSession: [Object], MailSystem: [Object], MathCoprocessorAvailable: [Object], MaxChange: [Object], MaxIterations: [Object], MemoryFree: [Object], MemoryTotal: [Object], MemoryUsed: [Object], MouseAvailable: [Object], MoveAfterReturn: [Object], MoveAfterReturnDirection: [Object], RecentFiles: [Object], Name: [Object], NextLetter: [Object], NetworkTemplatesPath: [Object], ODBCErrors: [Object], ODBCTimeout: [Object], OnCalculate: [Object], OnData: [Object], OnDoubleClick: [Object], OnEntry: [Object], OnKey: [Object], OnRepeat: [Object], OnSheetActivate: [Object], OnSheetDeactivate: [Object], OnTime: [Object], OnUndo: [Object], OnWindow: [Object], OperatingSystem: [Object], OrganizationName: [Object], Path: [Object], PathSeparator: [Object], PreviousSelections: [Object], PivotTableSelection: [Object], PromptForSummaryInfo: [Object], Quit: [Object], RecordMacro: [Object], RecordRelative: [Object], ReferenceStyle: [Object], RegisteredFunctions: [Object], RegisterXLL: [Object], Repeat: [Object], ResetTipWizard: [Object], RollZoom: [Object], Save: [Object], SaveWorkspace: [Object], ScreenUpdating: [Object], SetDefaultChart: [Object], SheetsInNewWorkbook: [Object], ShowChartTipNames: [Object], ShowChartTipValues: [Object], StandardFont: [Object], StandardFontSize: [Object], StartupPath: [Object], StatusBar: [Object], TemplatesPath: [Object], ShowToolTips: [Object], Top: [Object], DefaultSaveFormat: [Object], TransitionMenuKey: [Object], TransitionMenuKeyAction: [Object], TransitionNavigKeys: [Object], Undo: [Object], UsableHeight: [Object], UsableWidth: [Object], UserControl: [Object], UserName: [Object], Value: [Object], VBE: [Object], Version: [Object], Visible: [Object], Volatile: [Object], _Wait: [Object], Width: [Object], WindowsForPens: [Object], WindowState: [Object], UILanguage: [Object], DefaultSheetDirection: [Object], CursorMovement: [Object], ControlCharacters: [Object], _WSFunction: [Object], EnableEvents: [Object], DisplayInfoWindow: [Object], Wait: [Object], ExtendList: [Object], OLEDBErrors: [Object], GetPhonetic: [Object], COMAddIns: [Object], DefaultWebOptions: [Object], ProductCode: [Object], UserLibraryPath: [Object], AutoPercentEntry: [Object], LanguageSettings: [Object], Dummy101: [Object], Dummy12: [Object], AnswerWizard: [Object], CalculateFull: [Object], FindFile: [Object], CalculationVersion: [Object], ShowWindowsInTaskbar: [Object], FeatureInstall: [Object], Ready: [Object], Dummy13: [Object], FindFormat: [Object], ReplaceFormat: [Object], UsedObjects: [Object], CalculationState: [Object], CalculationInterruptKey: [Object], Watches: [Object], DisplayFunctionToolTips: [Object], AutomationSecurity: [Object], FileDialog: [Object], Dummy14: [Object], CalculateFullRebuild: [Object], DisplayPasteOptions: [Object], DisplayInsertOptions: [Object], GenerateGetPivotData: [Object], AutoRecover: [Object], Hwnd: [Object], Hinstance: [Object], CheckAbort: [Object], ErrorCheckingOptions: [Object], AutoFormatAsYouTypeReplaceHyperlinks: [Object], SmartTagRecognizers: [Object], NewWorkbook: [Object], SpellingOptions: [Object], Speech: [Object], MapPaperSize: [Object], ShowStartupDialog: [Object], DecimalSeparator: [Object], ThousandsSeparator: [Object], UseSystemSeparators: [Object], ThisCell: [Object], RTD: [Object], DisplayDocumentActionTaskPane: [Object], DisplayXMLSourcePane: [Object], ArbitraryXMLSupportAvailable: [Object], Support: [Object], Dummy20: [Object], MeasurementUnit: [Object], ShowSelectionFloaties: [Object], ShowMenuFloaties: [Object], ShowDevTools: [Object], EnableLivePreview: [Object], DisplayDocumentInformationPanel: [Object], AlwaysUseClearType: [Object], WarnOnFunctionNameConflict: [Object], FormulaBarHeight: [Object], DisplayFormulaAutoComplete: [Object], GenerateTableRefs: [Object], Assistance: [Object], CalculateUntilAsyncQueriesDone: [Object], EnableLargeOperationAlert: [Object], LargeOperationCellThousandCount: [Object], DeferAsyncQueries: [Object], MultiThreadedCalculation: [Object], SharePointVersion: [Object], ActiveEncryptionSession: [Object], HighQualityModeForGraphics: [Object], FileExportConverters: [Object], SmartArtLayouts: [Object], SmartArtQuickStyles: [Object], SmartArtColors: [Object], AddIns2: [Object], PrintCommunication: [Object], MacroOptions: [Object], UseClusterConnector: [Object], ClusterConnector: [Object], Quitting: [Object], Dummy22: [Object], Dummy23: [Object], ProtectedViewWindows: [Object], ActiveProtectedViewWindow: [Object], IsSandboxed: [Object], SaveISO8601Dates: [Object], HinstancePtr: [Object], FileValidation: [Object], FileValidationPivot: [Object], ShowQuickAnalysis: [Object], QuickAnalysis: [Object], FlashFill: [Object], EnableMacroAnimations: [Object], ChartDataPointTrack: [Object], FlashFillMode: [Object], MergeInstances: [Object], EnableCheckFileExtensions: [Object] },

var appIe = module.exports.ActiveXObject('InternetExplorer.Application.1'); BEFORE: 12 methods __methods: { Navigate2: [Object], QueryStatusWB: [Object], ExecWB: [Object], ShowBrowserBar: [Object], ReadyState: [Object], Offline: [Object], Silent: [Object], RegisterAsBrowser: [Object], RegisterAsDropTarget: [Object], TheaterMode: [Object], AddressBar: [Object], Resizable: [Object] },

AFTER: 54 methods __methods: { QueryInterface: [Object], AddRef: [Object], Release: [Object], GetTypeInfoCount: [Object], GetTypeInfo: [Object], GetIDsOfNames: [Object], Invoke: [Object], GoBack: [Object], GoForward: [Object], GoHome: [Object], GoSearch: [Object], Navigate: [Object], Refresh: [Object], Refresh2: [Object], Stop: [Object], Application: [Object], Parent: [Object], Container: [Object], Document: [Object], TopLevelContainer: [Object], Type: [Object], Left: [Object], Top: [Object], Width: [Object], Height: [Object], LocationName: [Object], LocationURL: [Object], Busy: [Object], Quit: [Object], ClientToWindow: [Object], PutProperty: [Object], GetProperty: [Object], Name: [Object], HWND: [Object], FullName: [Object], Path: [Object], Visible: [Object], StatusBar: [Object], StatusText: [Object], ToolBar: [Object], MenuBar: [Object], FullScreen: [Object], Navigate2: [Object], QueryStatusWB: [Object], ExecWB: [Object], ShowBrowserBar: [Object], ReadyState: [Object], Offline: [Object], Silent: [Object], RegisterAsBrowser: [Object], RegisterAsDropTarget: [Object], TheaterMode: [Object], AddressBar: [Object], Resizable: [Object] },

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/durs/node-activex/pull/72#issuecomment-613385473, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEMMNNATRPEVCE672IC7MTRMRCAVANCNFSM4MG3PCRQ .

Cupidazul commented 4 years ago

I saw your last commit, awesome work, as soon as i can I'll do some testing on my side.

Cupidazul commented 4 years ago

I tested, all looks good.

I know you've commented out, but I have ha doubt.

Here: // Enumerate all types in library types // May be very slow! need a special method / if (typelib != prevtypelib) { TypeLibEnumerate(typelib, mode, process); prevtypelib.Attach(typelib.Detach()); } /

Maybe you want This: " if (info != tinfo) { " Instead of This: " if (typelib != prevtypelib) { "

Right ? because 'prevtypelib' is never declared with a value ...

Cheers !

durs commented 4 years ago

prevtypelib.Attach(typelib.Detach()); and at the next iteration, the check may work

сб, 18 апр. 2020 г. в 12:30, Cupid@zul notifications@github.com:

I tested, all looks good.

I know you've commented out, but I have ha doubt.

Here: // Enumerate all types in library types // May be very slow! need a special method / if (typelib != prevtypelib) { TypeLibEnumerate(typelib, mode, process); prevtypelib.Attach(typelib.Detach()); } /

Maybe you want This: " if (info != tinfo) { " Instead of This: " if (typelib != prevtypelib) { "

Right ? because 'prevtypelib' is never declared with a value ...

Cheers !

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/durs/node-activex/pull/72#issuecomment-615831593, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEMMNJHG575X4U5ZMRYOZDRNFXKBANCNFSM4MG3PCRQ .