Sample details: 8cadf09123940447fbd5f7bd4427c323 --

Hashes
MD5: 8cadf09123940447fbd5f7bd4427c323
SHA1: 3492a9365a41906404fee959f5b0a98ed8bc12c3
SHA256: 75e46ff6f551d1aafa869e2fa314b6ca21bf3558c77413fa642e41610edced77
SSDEEP: 6144:yHC1eaD1GhoXSzBvhM28BFTJT+fPnPTxw:MCcaDvXSzti26oPlw
Details
File Type: Composite
Yara Hits
CuckooSandbox/embedded_win_api | YRP/office_document_vba | YRP/Contains_VBA_macro_code | YRP/domain | YRP/contentis_base64 | YRP/maldoc_OLE_file_magic_number | YRP/Base64d_PE | YRP/Base64_encoded_Executable |
Strings
		Vollmer, Mike(MSC)                                                                                           B
ThisWorkbook
#,##0\ "DM";\-#,##0\ "DM"
#,##0\ "DM";[Red]\-#,##0\ "DM"
#,##0.00\ "DM";\-#,##0.00\ "DM"
#,##0.00\ "DM";[Red]\-#,##0.00\ "DM"
_-* #,##0\ "DM"_-;\-* #,##0\ "DM"_-;_-* "-"\ "DM"_-;_-@_-
_-* #,##0\ _D_M_-;\-* #,##0\ _D_M_-;_-* "-"\ _D_M_-;_-@_-
_-* #,##0.00\ "DM"_-;\-* #,##0.00\ "DM"_-;_-* "-"??\ "DM"_-;_-@_-
_-* #,##0.00\ _D_M_-;\-* #,##0.00\ _D_M_-;_-* "-"??\ _D_M_-;_-@_-
20% - Akzent1
20% - Akzent2
20% - Akzent3
20% - Akzent4
20% - Akzent5
20% - Akzent6
40% - Akzent1
40% - Akzent2
40% - Akzent3
40% - Akzent4
40% - Akzent5
40% - Akzent6
60% - Akzent1
60% - Akzent2
60% - Akzent3
60% - Akzent4
60% - Akzent5
60% - Akzent6
Akzent1
Akzent2
Akzent3
Akzent4
Akzent5
Akzent6
Ausgabe
Berechnung
Eingabe
Ergebnis
render Text
Neutral
Schlecht
berschrift
berschrift 1
berschrift 2
berschrift 3
berschrift 4
pfte Zelle
Warnender Text
Zelle 
Tabelle1
IDL_START:
VYvsgezgAAAAuExpYnKNjUD///+JhUT///+JhVD///+NhUz///+AZe8AiYUk////jYVZ////iYUo////jYVm////iY0g////iYUs////uQBHbG+4bGxvY4mNdP///4mFfP///4lNgIlFlFONjXX///+NRYxWM/aJjTD///85dQiJhTj///+6RnJlZY1NgY1FmVeJdfyJdeCJlUD////HhUj///9hcnkAx4VM////TG9hZMeFVP///2FyeUHHhVj///8AR2V0x4Vc////TGFzdMeFYP///0Vycm/HhWT///9yAEdlx4Vo////dFByb8eFbP///2NBZGTHhXD///9yZXNzx4V4////YmFsQcdFhGJhbEbHRYhyZWUAiY00////x0WMVmlydMdFkHVhbEHHRZgAVmlyx0WcdHVhbIlVoIl1pImFPP///3UW6AAAAACPRQiBbQwwBgAAgUUI4QQAAIt9ELtQRQAAi088A8+LASvD99gbwPfQI8GLQHgDx4twIItIJItQGAP3A8+F0g+EmwAAAIlN+IlV3IvPjZUg////Aw6DZfAAiVXkiU3Y6wOLTdiLVeSJTeiLEolV9ItN6ItV9IoJiE0TOgp1IoTJdBqLTeiKSQGITRM6SgF1EINF6AKDRfQChMl10zPJ6wUbyYPZ/4XJdA//RfCDReQEg33wCHWr6xiLTfiLUBwPtwmNDIqLVfCLDDkDz4lMlbiDRfgCg8YE/03cD4Vr////jYVZ////UFf/VcSLTQiJRcC/ADAAAGpAi0E8VwPBizAr8/feG/b31iPwi15QU4ld8P92NP9V0IXAiUUQdVb/VcCLyIH55wEAAHUqakBXU2oA/1XQhcCJRRB1Of9VwIXAdA//VcAl//8AAA0AAAeA6xgzwOsUi8GB4f//AACByQAAB4D32BvAI8GFwIlF/A+MYwMAAItVEItOVIvCi/orRjSLdQiJRdyLwcHpAvOli8iD4QPzpItCPAPCixiB61BFAAD32xvbg2X0APfTI9gPt0MUZoN7BgCNRBgYdluNUAiDOgB0U4t6BItCCAN9EIlF2IXAiX34dhSLcgyLyAN1CMHpAvOli8iD4QPzpIsKO8h2F4t9+CvIi/ED+DPAwekC86uLzoPhA/OqD7dDBv9F9IPCKDlF9HKog33cAA+EvwAAAIuTpAAAAIXSD4SqAAAAi4ugAAAA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<
FD/VRyDxAyJRSyD+P9qAHUYagSLRQBQ6JQQAACDxAwzwF1fXluDxCjDi0Vgi42IAAAAUFH/VRyDxAyD+P91GmoAi0UAagRQ6GQQAACDxAwzwF1fXluDxCjDZotFbFVmiYWsAAAA6CYEAACDxASD+AEbwF1AX15bg8Qow2oAi0UAagFQ6CgQAACDxAwzwF1fXluDxCjDzMzMzMzMzMzMzMxTVot0JAxXVYtedIXbD4SZAAAAi354OX4wdgrHhpAAAAD//wAAM8Bmi0Z8UFbofgQAAIPECIXAD4ToAAAAi0ZIM8lmi0gGA04wO893ElboLQEAAIPEBIXAdePpxgAAAIXbdEmLz4tGSCtOMDPtZotoBivpO+t2AovrVYtGQAPBi46MAAAAUFH/VhSDxAw7xXUVA/0r3XTIVujjAAAAg8QEhcB1u+t/agBqCOtujY68BwAAjYa0AAAAiUEEi5aMAAAAiVEUZotefmaJWRhmi4aAAAAAZolBGmaLloIAAABmiVEci144iVkQZotGfGaJQSLHAQAAAAD2QRxAdAzHAQEAAABmgWEcv/9RagP/ViSDxAiD+P91MmoAaguLBlDo7g4AAIPEDIuGjAAAAIP4/3QRUP9WGMeGjAAAAP////+DxAQzwF1fXlvDx4aMAAAA/////4XAdRZqAIsGaghQ6K4OAACDxAwzwF1fXlvDuAEAAABdX15bw8zMzMzMzMzMzMyD7AQzyVaLdCQMi0ZIZotIBgFOMGaDvrAAAAAAdRRW6LwAAACDxASFwHUHM8Beg8QEw2b/jrAAAABqAFbo3wQAAIPECIXAdQczwF6DxATDi0ZIZoN4BgB1K1bogQAAAIPEBIXAdEOLRkgzyWaLSARRVuiqBAAAg8QIhcB0LGb/jrAAAACLRkhmi0AGZolEJAaNRCQGUFboZQwAAIPECIXAdQ4zwF6DxATDM8Beg8QEw2aLTCQGi0ZIZjlIBnQWagCLBmoHUOjGDQAAg8QMM8Beg8QEw7gBAAAAXoPEBMPMzIPsBFNWV1WLfCQYZotHcI2fvAcAAGaLd3KNj7gEAABmRo2XuQUAAGaJRCQSjYe3AwAAiUMEiUsIZotMJBKJUwyLRziJQxBmiUseZolzIMdDJAAAAAAz7YuHhAAAAIP4/3QPUP9XGIPEBIXAD4XCAAAAi4eIAAAAg/j/dA9Q/1cYg8QEhcAPhagAAADHh4gAAAD/////x4eEAAAA/////1NqBP9XJIPECIP4/w+EmwAAAItEJBJWUI2PtwMAAFFX6Jz4//+DxBCFwHQPagBX6P0BAACDxAiFwHUQiweDOAsPhIAAAAC9AQAAAIsHhe2LCIlLJA+FXP///2b/h64AAABmi4euAAAAZoXAdGNmSFdm/4+sAAAAZomHrgAAAOjOAgAAg8QEhcB11zPAXV9eW4PEBMNqAIsHagRQ6HEMAACDxAwzwF1fXluDxATDagCLB2oLUOhYDAAAg8QMM8BdX15bg8QEwzPAXV9eW4PEBMO4AQAAAF3Hh5wAAAABAAAAX15bg8QEw8zMzMzMzMzMzMxWV4t0JAyNjrwHAACNvuQHAACNhrcDAACNlrgEAACJQQSNhrkFAACJUQiJQQxRi1Y4agCJURBmi0ZwZolBHmaLVnJmiVEg/1Ykg8QIg/j/dRRqAIsGagtQ6MMLAACDxAwzwF9ew4N+KAB0TccHAAAAAItGOIlHBItOTIlPCIuWoAAAAFdmiVcMZotGcGaJRw4zwGaLRnKJRxD/ViiDxASD+P91FGoAiwZqC1DocAsAAIPEDDPAX17DuAEAAABfXsNWV4t0JAyDvpwAAAAAdAi4AQAAAF9ew4t8JBCLxyX+/wAAPf7/AAB1BzP/Zot+ak85vpAAAAB0NFbowggAAIPEBIXAdC9XVug0AAAAg8QIhcB0IVbod/z//4PEBIXAdQUzwF9ew8dGMAAAAAC4AQAAAF9ewzPAX17DzMzMzMzMzFNWi1wkEFeLfCQQVWoAjbfkBwAAi4ekAAAAi4+EAAAAD6/DA0csiZ+QAAAAUFH/VxyDxAyD+P8PhMkAAACLr6QAAACLR0RVi4+EAAAAUFH/VxCDxAw7xQ+FqQAAAGoAi0dEi5eEAAAAiwhRUv9XHIPEDIP4/w+EiwAAAItHRFdmi0gEZomPsAAAAGaLQAZQ6NwDAACDxAiFwHUHM8BdX15bw4N/KAB0VMcGAQAAAItHOIlGBIuHpAAAAGYtCABmiUYMdAuLR0SDwAiJRgjrB8dGCAAAAABmiV4OVv9XKIPEBIP4/3UWagCLB2oLUOjuCQAAg8QMM8BdX15bw7gBAAAAXV9eW8NqAIsHagRQ6M4JAACDxAwzwF1fXlvDzMzMzFZqEIt0JAyNRnSLjogAAABQUf9WEIPEDIP4EHUgVo2GtAAAAGgAAQAAUOiRAQAAg8QMhcB0B7gBAAAAXsNqAIsGagRQ6HcJAACDxAwzwF7DU1aLdCQMV1WNvuQHAACLnqgAAACLRkhTi46EAAAAUFH/VhCDxAw7ww+FJgEAAItGSDPtZotoBItcJBiNRB0AO4aYAAAAD4cJAQAAVYtGPAPDi46EAAAAUFH/VhCDxAw7xQ+F7QAAAItuSIN9AAB0S4PFBGoAM8Bmi0UAUItGPAPDUOgFCQAAg8QMUIuGqAAAAIPoBFBV6PEIAACDxAyLTkg5AXQWagCLBmoEUOi/CAAAg8QMM8BdX15bw4tGSGYBWASF23UPi0ZIuQAAAABmg3gGAHUFuQEAAACDfigAdGrHBwIAAACLRjiJRwSLhqgAAABmLQgAZolHDHQLi0ZIg8AIiUcI6wfHRwgAAAAAi0Y8A8NXiUcQi1ZIZotqBGaJbxSJTxhmiV8c/1Yog8QEg/j/dRZqAIsGagtQ6DAIAACDxAwzwF1fXlvDuAEAAABdX15bw2oAiwZqBFDoEAgAAIPEDDPAXV9eW8PMzMzMzMxTVotcJBRXVWoBagCLg4gAAABQ/1Mci3QkJIt8JCCDxAyL6IuDiAAAAFZXUP9TEIPEDIXAfxZqAIsDagRQ6L4HAACDxAwzwF1fXlvDjUQ3/7n/////ihDGAAArwPKu99GNAUk7xnwahNJ0FmoAiwNqBFDoiQcAAIPEDDPAXV9eW8NqAI0EKUCLi4gAAABQUf9THIPEDIP4/3UWagCLA2oEUOhaBwAAg8QMM8BdX15bw7gBAAAAXV9eW8PMzMzMzMxTVot0JAxXagFqAIuGiAAAAFD/VhyDxAyL+IP//3UVagCLBmoEUOgVBwAAg8QMM8BfXlvDZouGrAAAAI2evAcAAGaLTnCLVjhmiYbeBwAAU2aJjtoHAABqBYk7iZbMBwAA/1Ykg8QIg/j/dRVqAIsGagtQ6MgGAACDxAwzwF9eW8Nmi4beBwAAZomGrAAAAGaFwHQwiwM7x3QqagBQi4aIAAAAUP9WHIPEDIP4/3UVagCLBmoLUOiFBgAAg8QMM8BfXlvDuAEAAABfXlvDzMzMVldmi3QkDIt8JBBmObeyAAAAdQi4AQAAAF9ew1foPgAAAIPEBIXAdRRqAIsHagdQ6DsGAACDxAwzwF9ew2aJt7IAAABX6AYBAACDxASD+AEbwF9AXsPMzMzMzMzMzMzMVjPAi3QkCGaLhrIAAACD4A+D+A93DzPJiohcKTgW/ySNRCk4FmoAiwZqBlDo3wUAAIPEDDPAXsOLRjRQ6G8LAACDxASFwHRgagCLBmoHUOi8BQAAg8QMM8Bew4tGNFDorAkAAIPEBIXAdD1qAIsGagdQ6JkFAACDxAwzwF7Di0Y0UOjZBwAAg8QEhcB0GmoAiwZqB1DodgUAAIPEDDPAXsO4AQAAAF7Di0Y8UP9WBIPEBItGQFD/VgSDxAS4AQAAAF7DkCgpOBa4KDgW2yg4Fv4oOBYhKTgWpSg4FgABAgMFBQUFBQUFBQUFBQTMzMzMg+wQU1aLdCQcV2aLjrIAAABVM/+NnpQAAAAz0scDAIAAAGaL0YPiD4P6D3cPM8CKghwsOBb/JIUELDgWvwYAAADpsQAAAMeGmAAAAACAAADpogAAAI2GmAAAAGoAUGoAagBT6CgJAACDxBSFwA+EhAAAAOt9ZoHhAB+LViBmwekIagCJVCQYagAPt8GNjpgAAABqAIlEJBxqAI1EJCBqAGoAUWoAagBQU+gCBwAAg8QshcB0Qus7ZsHpCLgBAAAAgOEfjZaYAAAA0+CJRCQYagBqAGoAjUQkJGoAagBqAFJqAGoAUFPo1QQAAIPELIXAdAW/BwAAAIX/dCFqAIsGV1DoGgQAAIPEDDPAZseGsgAAAA8AXV9eW4PEEMONrpgAAACLRQBQ/1YIg8QEiUY8hcB1ImoAiwZqBVDo4QMAAIPEDDPAZseGsgAAAA8AXV9eW4PEEMOLA1D/VgiDxASJRkCFwHUsi0Y8UP9WBIPEBIsGagBqBVDopQMAAIPEDDPAZseGsgAAAA8AXV9eW4PEEMMzwGaLhrIAAACD4A+D+AF0D4P4AnQmg/gDdFbpkAAAAI1GNItOBFCLVghVUVJT6MwHAACDxBSFwHR262iLRhyLThhQi1YUUYtGEFKLTgxQjVY0UYtGBFKLTgiNVCQoVVBRUlPotwUAAIPELIXAdEHrM4tGHItOGFCLVhRRi0YQUotODFCNVjRRi0YEUotOCI1UJDBVUFFSU+iSAwAAg8QshcB0DEiD+AEb/4Pn/oPHB4X/dDWLRjxQ/1YEg8QEi0ZAUP9WBIPEBIsGagBXUOi8AgAAg8QMM8Bmx4ayAAAADwBdX15bg8QQw7gBAAAAXV9eW4PEEMO4AQAAAF1fXluDxBDDtik4FsUpOBblKTgWJyo4FvcrOBasKTgWAAECAwUFBQUFBQUFBQUFBMzMzMxWM8CLdCQIZouGsgAAAIPgD4P4D3cPM8mKiPAsOBb/JI3YLDgWagCLBmoGUOgvAgAAg8QMM8Bew4tGNFDonwcAAIPEBIXAdFlqAIsGagdQ6AwCAACDxAwzwF7Di0Y0UOjcBQAAg8QEhcB0NmoAiwZqB1Do6QEAAIPEDDPAXsOLRjRQ6PkDAACDxASFwHQTagCLBmoHUOjGAQAAg8QMM8Bew7gBAAAAXsPRLDgWaCw4FossOBauLDgW0Sw4FlUsOBYAAQIDBQUFBQUFBQUFBQUEg+wEM8BWV4t0JBBmi4ayAAAAg+APg/gDdwf/JIV0LjgWagCLBmoGUOhjAQAAg8QMM8BfXoPEBMOLRkiLfCQUZotABA+3yGaJB4t+QIt2PPOkuAEAAABfXoPEBMOLhpQAAACLTkCLVkiJRCQIjUQkCFBRM8mLRjxmi0oEi1Y0UVBS6BoGAACDxBSFwHQXagCLBmoHUOj3AAAAg8QMM8BfXoPEBMOLRCQIi3wkFGaJB7gBAAAAX16DxATDM8CLfCQUZosHi05Ai1ZIiUQkCI1EJAhQUTPJi0Y8ZotKBItWNFFQUugpBAAAg8QUhcB0F2oAiwZqB1DolgAAAIPEDDPAX16DxATDi0QkCGaJB7gBAAAAX16DxATDM8CLfCQUZosHi05Ai1ZIiUQkCI1EJAhQUTPJi0Y8ZotKBItWNFFQUujsAQAAg8QUhcB0F2oAiwZqB1DoOQAAAIPEDDPAX16DxATDi0QkCGaJB7gBAAAAX16DxATDOC04FlwtOBa6LTgWFy44FszMzMzMzMzMzMzMzItEJAiLTCQEi1QkDIkBx0EIAQAAAIlRBMPMzMxTUVJWi1wkFItMJBiLRCQci9GD+gR8MIP6EHwXwekEkDMDi3MEM0MIM3MMg8MQM8ZJde2LysHpAoPhA4XJdAgzA4PDBEl1+IPiA4P6A3UMM8mKC0PB4RAzwesFg/oCdQwzyYoLQ8HhCDPB6wWD+gF1BjPJigszwV5aWVvDzMzMzMzMzMyLRCQEU1ZXVYsIgcEAGAAAi0QkJIt0JCiJCIX2dQczwF1fXlvDi1wkHGosxwYAAAAA/9ODxASL+IX/dQq4AQAAAF1fXlvDaPwuAAD/04PEBIlHKIXAdRJX/1QkJIPEBLgBAAAAXV9eW8OLRCQgi0wkLItUJDCJXwSLbCQ4iUcIi0QkNIlPDIlXEIlHFItEJDyJbxiLbCQUiUcci0UAi2wkGIlHIItFBIlHJItEJDxQxwdMRElDi0QkPFCLRCQ8UFJRi1UAi0wkNItHKFFTUlDobAQAAIPEJIXAdRJX/1QkJIPEBLgBAAAAXV9eW8MzwF2JPl9eW8PMzMzMzMzMzMzMi0wkBIPsBMdEJAAAAAAAVoE5TERJQ3QKuAIAAABeg8QEw4t0JByLFjlRIHMKuAMAAABeg8QEw41EJARQUotEJCCLSShQi0QkIFCLRCQgUFJR6LoEAACLTCQgg8QciQ6D+AG4AAAAAF6D0P+DxASD4ATDzMzMzMzMzMzMzMzMzMyLRCQEgThMRElDdAa4AgAAAMOLQChQ6EUEAACDxAQzwMPMzMzMzMzMzMzMzMzMzMxWi3QkCIE+TERJQ3QHuAIAAABew4tGKFDoAwQAAIPEBMcGAAAAAItGKFD/VgiDxARW/1YIg8QEM8Bew8zMzMzMU1aLdCQQV1WLBoP4Cg+MzwAAAIP4FQ+PxgAAAIt8JBSLB4XAdAc9AIAAAHYGxwcAgAAAiw+LRCQkgcEAKAAAi1wkKIkIhdt1BzPAXV9eW8NqKMcDAAAAAP9UJCCDxASL6IXtdQq4AQAAAF1fXlvDi0QkHItMJCCLVCQsiUUEi0QkMIlNCItMJDSJVQyLVCQ4iUUQi0QkPIlNFIlVGIlFHIsPiU0gi1YEiVUkx0UAUURJQ4kttLg4FosGUOjQAwAAg8QEhcB0ElX/VCQkg8QEuAEAAABdX15bwzPAiStdX15bw7gFAAAAXV9eW8PMzMzMi0wkBIE5UURJQ3QGuAIAAADDi0QkFIkNtLg4FosAOUEgcwa4AwAAAMOLTCQMUItEJBSLVCQMUFFS6CIFAAAPt8iDxBC4AAAAAIP5AYPQ/4PgBMPMzMzMzMzMzMzMzMzMi0QkBIE4UURJQ3QGuAIAAADDo7S4OBbopAUAADPAw8xWi3QkCIE+UURJQ3QHuAIAAABew4k1tLg4FuhRBQAAVscGAAAAAP9WCIPEBDPAXsOLRCQEUKG0uDgW/1AEg8QEw8zMzMzMzMzMzMzMzMzMzItEJARQobS4OBb/UAiDxATDzMzMzMzMzMzMzMzMzMzMU1aLdCQMV1WLBoXAdAc9AIAAAHYGxwYAgAAAiw6LRCQgg8EMi3wkJIkIhf91BzPAXV9eW8OLbCQYahDHBwAAAAD/1YPEBIvYhdt1CrgBAAAAXV9eW8NV6DQfAACDxASJQwyFwHUSU/9UJCCDxAS4AQAAAF1fXlvDi0QkHF2JQwQzwIsOiUsIxwNNRElDiR9fXlvDzMzMzMzMzMzMzMzMzFaLdCQIgT5NRElDdAe4AgAAAF7Di0YIi1QkEI1IDDvKcwe4AwAAAF7Di0wkDFCLRCQYUFJRi1YMUuhyCgAAg8QUhcB1EYtEJBiLTgxQUeitCgAAg8QIXoP4AbgAAAAAg9D/g+AEw8zMzMzMzMzMzMyLRCQEiwAtTURJQ4P4AbgAAAAAg9D/g+ACw8zMzMzMzFaLdCQIgT5NRElDdAe4AgAAAF7DxwYAAAAAi0YEi04MUFHoqR8AAIPECFb/VgSDxAQzwF7DzMzMzMzMzMzMzMyLRCQMVot0JAiLTCQUi1QkHImG4C4AAItEJBiJjuQuAACLTCQgiYboLgAAi0QkJImW7C4AAItUJCiJjvAuAACL
##0.00\ 
##0.00\ 
##0.00\ 
##0.00\ 
##0.00\ 
 _D_M_-;}
##0.00\ 
 _D_M_-;}
##0.00\ 
 _D_M_-;}
##0.00\ 
 _D_M_-;}
##0.00\ 
##0.00\ 
 _D_M_-;}
##0.00\ 
 _D_M_-;}
##0.00\ 
 _D_M_-;}
##0.00\ 
 _D_M_-;}
##0.00\ 
 _D_M_-;}
##0.00\ 
##0.00\ 
##0.00\ 
 _D_M_-;}
##0.00\ 
##0.00\ 
 _D_M_-;}
##0.00\ 
 _D_M_-;}
##0.00\ 
 _D_M_-;}
##0.00\ 
 _D_M_-;}
##0.00\ 
 _D_M_-;}
##0.00\ 
 _D_M_-;}
##0.00\ 
 _D_M_-;
##0.00\ 
 _D_M_-;
##0.00\ 
 _D_M_-;
##0.00\ 
 _D_M_-;
##0.00\ 
##0.00\ 
 _D_M_-;}
##0.00\ 
 _D_M_-;}
##0.00\ 
##0.00\ 
##0.00\ 
##0.00\ 
##0.00\ 
##0.00\ 
##0.00\ 
##0.00\ 
##0.00\ 
##0.00\ 
HP LaserJet 4100 PCL 6
Tabelle1
Attribut
e VB_Nam
e = "Thi
sWorkboo
0{00020P819-
$0046}
|Global
dCreat
ateDeriv
Bustomi
2Optio
/licit
 Propert
y Get Co
nnectorA
() @As Obj
LDecentr
"AddinM
anager
 Sub E
Install(
_OpenC
Attribut
e VB_Nam
e = "Tab
elle1"
0020820-;
 False
dCr@eatabl
redecla
BE xpose
mplateDe
Bust0omiz
IDLConne ctor
UGBUILD @= 0<
Format.
LineDiff
Format.
.Members
Formate
Abbrechen
Kopieren
Unbenennen
Format.Count 
Format.
Attribut
e VB_Nam
e = "frm
Formats"D
{D935C08
3-096F-4
F05-9559
-647349
243}{DC2
EC8BD-8B
24-45FF-
1A062D3}
dGlobal
lateDeri
Custom$iz
Op tion 
3lihcit
Sub cbCa@ncel_C
  Un@load M
0rror Go
To ErrHa`ndler
pplyChanXges
MsgBox
.Descri
, vbCrit
Dim rAct
R As R
oIntern<al
	ObHjec
M  A	n Index
ng, nCou
Varian
oFrmLine
$= Conn
D, = lst
>= 0 Thden
2.ProfilPe_Re
& ".`Type"
RT_EXCEL
g.Assert^ %1
2@)itFr`omSel
,Agb Overw
Ar Initgg
OLocText
_FindByI
D(406) '
12)  'E
ecdr@	opy
1!	Kopie
[te_	N	"4
n`Q?	,	360 	
Unbene
BIsNum
[pTxLng
oU_- 1
Mi0N".
AddIte
Ked(iP
Q{u'ARun ModalcASh
bei zusammengesetzten Bereichen u.U. nicht festgelegt
wichtig: falls bereits ein Array zugeordnet: diese L
schen, falls Bereiche inkompatibel
bOverwriteExistingFormat true: evt vorhandenes Format 
berschreiben
bExistingOnly: nur pr
fen, ob geeigneter Connector-Bezug: R
ckgabe true
Zeilenunterschied
Abbrechen
Spalte
Bedingung zu nachfolgender Zeile
Speichern unter ...
speziell antesten, ob CurrentArray bei gemischtem Bereich ermittelbar
IDLLineDiff
Keine Restriktion
Werte Identisch
Werte Ungleich
Testlauf, um Parameter zu erfahren
Auswahl nun gesamtes Array
bExistingOnly: nur zeigen, falls geeigneter Connector-Bezug: R
ckgabe true
Bereich wird direkt gesucht, falls einzelne Zelle oder gesamte Spalte gew
einzelne Zelle markiert den oberen Beginn
Geben Sie den Namen f
r die neue Formatdefinition an
Speichern unter
Format.Count 
Format.
 existiert bereits
Format.
Format.
LineDiff 
Format.
.Members
Format.Count 
anhand von Parameterliste laden (Format laut Profil)
Default
nach einer Spaltenangabe (oder bei erstem Aufruf): 
fen, ob Bedingungsoperator
noch nicht bearbeitet, dann muss Spaltendef vorliegen
Default Equal
liefert die Formel im A1 Stil (bSaveParams = false)
ansonsten Parameter zum Speichern in Profil
=IDLLineDiff(
Werte Ungleich
mit Bezug:
genaue Angabe des Eingabereichs, damit automatische Aktualisierung gew
hrleistet
kein Bezug: nur Konstante f
r Spalte
Klick auf Column
Klick auf Bedingung
Eintrag l
Option 
ohne $
Attribut
e VB_Nam
e = "frm
LineDiff
0{787543
38-BE8A-
4612-B46
B-8EB852
437017}{
57D5D8CB
-D4A3-4B
93-BB04-
7F19AAE7 2924}
oFalse
Creatabl
Predecl
BExpose
0Templat@eDeriv
ustomiz
3licit
SystemCh
ange As 
Boolean
rSelec
 cbCance
  Unloa
wEnd S
ror GoTo
 ErrHand
Appl*y
@MsgBox
.@Descri
 vbCriti8calA	
f SUPPOR
T_EXCEL9 7 TheAEub
 I$A<#E
pFrieC
bHas ArrayJb  
#IsNull(Tm_Gc.E
/= No thing
zusamme@
setzten @Bereic@U @u.U. n`
t@ festg
Curre$nt#%'w
: falls 
ts ein
zugeor
dnet: di
 inkomp
@ Ise 
(0  r.For
Convert$
eParams:
), xlA"1
eExist
: e@vt vor
nly: nur
 ob geei
 or-Be
ckgabe
>qFunC
 Init(c
alp ByV
(p $k{
nColumn
VarianbjA
oIntern
 9/O	 XI
Cacm= 
o@n.LocT
FindByID
(407) 'Z
eilenu
iedQ	cbOKN.
Lre/#.?
Be"dP@ung0\ n
achfolg n
2=0,8vD4
  'spezi
rgemi *
 ermitte
, "I<DL
2) 0<= 0
AddIq&
x= -1a
} Evalu
vntArray
Formula,
 2) 'Tes
tlauf, u
m Parame
ter zu e
rfahren
_frmLine
DiffInit
 = Nothi
Hm_rSe
lection
'Auswahl
 nun ges
amtes 
End If
m_bSyste
mChange
X False
stCount 
> 0 Th
Ped(0)
$  Ref
reshQuic
kEditFro>m
ErrHandl@er:
UPPORT_E
XCEL97
Debug.As
3.Raise
Number
Source
Descrip?
blic Sub
 RunModa(l()
_Fr<ie
$'b@Kst@
en, fall
or-Bez
gabe t
al ByV@
ed As R
bOver`write
Boolea
+|onF4
im nColu
.ResPize(
  'Berei
ch wird  direk
uchte_ein
zelne Ze
lle od
 Spalte
den o`
RowC/"  -h#
 + C2a	g
rksheet.
q.En6t
Priva 5
cbSaveA(s_C
sgBoxa
 , vbC
<strN0
Varian
 ("Geb
8e neue
an", "Sp!q;ern 
Default<:=d
.Profil
e_Read "
mpareQ
Nitts"G
 c80&@
N&2 K1
@  Loop
S0Jt_V
@ Delim0
=Left$(}
=p Mid
PDe la
String)
#End If
  Dim 
i As Lon"g
HBo olean
ountRows
2SrcCol
>bEqu@alPrev
If SUPPO
RT_EXCEL@97 The
rMember
Variant
strAct
SystemCh
ange = T
0lstLi
neDiff.C=
Split_VB
V 'Defa
= 0 To dUB
Ax= Fa
Mabe (
oder bei
 @l@S Aufr@uf): 
fen, o b Bed
gsoperat
no@Fnich
ear@Btet,
 dann mu
Kdef v
orlieg
[cmbComp
areOptio
Pub0lic 
FromPara
Cond^i!0C
)Index
Handle
,0Exit!	a
	.Descr
z, vbCr
freshQui@ckEdit
eleca7
'Pkfer t die
il (bSavjerQs
/' anson 
6S zum
r ern i
 Cre`6PH
mula4X
m_rF$ Is 
= "=ID
IoHrAp
ca!J.DIn
dByID(41"8
rBez,ugBN
au e Ang
alisier
r KqUp
mula = s
 Next nI
Not bSav
eParams 
Creat&e
%Fu nctio
b OnCmbC
lick(ByV
ListActC
m_bSys`temCh
 pExit
=p Tru
 lstLine
~olu~m
ount - 1]
 auf ~C
pareOpA
Bed}@`u
X1 'Eint
RemovezI
k b5a'
>/gmB#
ddBBf&,
= Mi@d$(App
BQConvert
("C" &
 2) 'ohn
, "<:"
ror Go
Handler
(E	.T 
rirn, vbC
riticalQ
Variantq
GetProcAddress
GetCurrentThreadId
CreateProcessW
PostThreadMessageA
GetExitCodeProcess
Klasse verwaltet IDL Addins
ausserhalb Kvd201.dll: Erg
nzung zu IDLDecentralEntry
stellt dann Objektzugriff auf Elemente aus IDLDecentralEntry dar
Menge an Addins, die in unseren Besitz sind, nicht dabei diejenigen Addins, die eigenen Makrolader (GetIDLAddin besitzen)
Ereignis-senke f
r Excel Ereignisse
true, falls Connector Inprozess aktiv
Private Declare PtrSafe Function GetProcAddressLong Lib "Kernel32" Alias "GetProcAddress" (ByVal hModule As LongPtr, ByVal lpProcID As LongPtr) As LongPtr
Private Declare PtrSafe Function GetCurrentThreadId Lib "Kernel32" () As Long
Private Declare PtrSafe Function CreateProcessW Lib "kernel32" (ByVal pApplicationName As LongPtr, ByVal lpCommandLine As Longptr, ByVal lpProcessAttributes As Longptr, ByVal lpThreadAttributes As LongPtr, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, ByVal lpEnvironment As LongPtr, ByVal lpCurrentDirectory As LongPtr, ByRef lpStartupInfo As STARTUPINFO, ByRef lpProcessInformation As PROCESS_INFORMATION) As Long
Private Declare PtrSafe Function PostThreadMessageA Lib "user32" (ByVal idThread As Long, ByVal Msg As Long, ByVal wParam As LongPtr, ByVal lParam As LongPtr) As Long
Private Declare PtrSafe Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As LongPtr, ByRef lpExitCode As Long) As Long
dt registrierungsfreies Dll Modul-Objekt, gem
ss Standard Signatur f
r registrierungsfreie Module
.InitModule
Fehlernummer hinzuf
Error=
Error=
dt registrierungsfreies Dll Modul-Objekt, gem
ss Standard Signatur f
r registrierungsfreie Module
Implementation f
r In Memory Loader
IDL_START
ggf. Problem mit Makroscanner (Aufrufe wurde geblockt)
Generic failure: possibly due to restriction by macro scanner
please contact your administrator
Fehlernummer hinzuf
Error=
Error=
Win64 = 0 Then
unbestimmt
ERROR=
SOURCE=
ERROR=
SOURCE=
ermittelt (oder startet ggf) IDLAddin, zugeordnet zu Workbook
Addin suchen, R
ckgabe Nothing, falls nicht gefunden
Mappen-Name antesten, ung
ltig, falls entladen
wegen Office97: Meldung kann Makro XXX nicht finden
Excel97: Addins nicht ber
cksichtigen, da diese i.A. in Startup und in Startup kann "Makro nicht gefunden ..." nicht ignoriert werden
Struktur 
        Set r = wsData.Range("IDL_START")
        If Not r Is Nothing Then
        End If
IDL.Connector.Version
'!GetIDLAddin
alle anderen Fehler ausser Makro nicht gefunden weitergeben
kein Makro-Addin: dann versuchen es 
ber Strukturblatt aufzusuchen
Struktur 
IDL_START
ab hier werden Fehler beachtet, da Addin nun geladen werden muss
TODO: 
fen, ob Prozess noch l
uft noch: keine Aktionen n
tig, da Code von sich aus Mappen bearbeitet
Lade Connector Mappe ' 
loading connector workbook ' 
ConnectorServer.exe
/SpreadApp /GuiThread= 
 /ParentProcess=
weitere Kommandozeilenargumente
Zeichen, dass ParentProzess einen Connector stellt 
 /ParentConnector
dwProcessId = Shell(strCommandLine)
TODO: ErrorHandler 
Mappen-Name antesten, ung
ltig, falls entladen
Level f
r Anwendungsisolation (Trennung Excel zu Connectoranwendung)
0: Server Datenzugriff und Oberfl
che in Officeanwendung laden
1: Server Datenzugriff separat betreiben, Oberfl
che in Officeanwendung laden
2: Server Datenzugriff und Oberfl
che separat betreiben
gert ermitteln
Options.AppIsolation 
Attribut
e VB_Nam
e = "IDL
AddinMan
FB3D2A-A
0FA-1068
-A738-08
002B3371
I False
dCr@eatabl
redecla
CExpoDse
emplateD0eriv
Cus tomiz
DOp tion 
waltet 
halb Kvd
201.dll:
nzu ng zu
centralE
+stell
t dann O
bjektzug
riff auf
 m_Loade
K As Ne
w CollecAB4'Meng
D., die i
n unsere
n Besitz
 sind, n
ichA&bei
r (Get
)@WithEv
ZaC)Er
s-senke 
bcel@SS
arHelpID
-1KFbSp
in64 The
ShProce
#End I
@ aktiv
CommandA
Safe Funo
N@Ba) Gr
Lib "Ker
nel32" A@lias "
 (ByVal 
hModu`
()bInh`
lpEnviroNn
 lpStart@upInfo
TARTUPIN<FO
'PROCES
wPara>m
itCod%L#
'.TPype 
XTitzE#	X
XCountCxhar
Fxill&:+
Show`kdowa
Roa>dka
9oas o1
_^ge_^
/[_\w_\d
dw_\_\_\?
StdOutpu
t As Lon@g
lic Sub 
initSpre
adApp()
" = T<ru
tifyInpr
ocConnec8tor
operty G`et is
oolean
#If Win
gFuncti
Module(B
yVal Ful lPath
ring, Op
>IDLDece@ntralE
.isMemLo
1BoEls
dt  regis@Ber
ungsfrei
kt, gem
ss Stand
ard Sign
atur f
fDim hH
EXPORT_O
RDINAL_I
NITMODULrE@C40
er`rSyste`mVers@Z
PtrStu&b!
s@g32UnicXodeHU
ibraryW(
!O!P  
 Raise`
cAddres
O=&  &@44(
,#&r < 	
l&hr, 
=ab.Numb
'Fehlern
ummer hi
& vb@Lf & "
RAT CuUY
In ppory
d, dwS
INVALID_
HANDLE_
ERIC_REA
.&H8af
OPEN_E
XISTING
@COMMITb
hPtorkboo
shee@ts(1).
_START
9i'gPgf. 
XMakros
frufe wu
gebloc
oPm, "Ge
c fail
ure: pos
sibly du
by macro
VApGase c
= VirtuahlAlP
q!8IntP
  End If
ror <> 0  Then
h, , s<tr
t LoadDl
lModuleM
em = o
Exit Fu`nctio
andler:
.Numb<er
escrip
Resume N
.nummer
 hinzuf
& vbLf &
Cle0anup
'Win64
Private
 Sub Cla
ss_Initi
alize(
m m_app@
Ap plica
-1 'unbe
ProcessI
dSpread
<_Work
bookOpen
(ByVal w
ableCanc elKey@"xl(Dis
tectIDLA
ddinImpA
playAler
MsgBo<x 
S`OURCE
S@ource,
r@Fcal"
O?+ b^
.  Ref
Alttelt (
startA
 zugeord2n 
TS7!dOb
YaBDim o
	@= Find
 ckgab 
, falls
 nicht g
efundA
.vntEn
String
(0$)."
'M`den
`ben, 
ltigAe
wsDataa
"bzM_@yv
0#YEoYA
ce97: Me
* kann
 Makro X4XX
v`&Tru
g/'Exp
 da dieP
i.A. in 
G ..."
ignori
0 werT9
	wbx.IscM1w
zA04d{
<t-=A@
@&uktur"v=
_START
nlyNew
:=u4!	
 Run("'
 auss`
weiterg
#If Win
64 = 0 T@hen
kein Mak
ro-Addin
: dann v ersuc
trukturb
latt auf
Set @wsData
b.Worksh@eets("
nge("IDL@_START
n Error 
i'ab h
werden
bea@chtet,
 nun ge
nitIntAp
plicatio
n(ObjPtr
(wb), r
vntKey
"#" & 
_Resume 
 Array9
Cleanup:
kbDispl
ayA@[ts_p
strSourc
xit 0Func
:Debug@.Asser
2Descr
}i$sS@7ad
 As Boo
assignCo
mm@tArgs(>a
bgm_?H
5pllNa
yNewConn
ModuleFu
Varian
st WM_O
PEN_CONN
ECTOR_DO@CUMENT
#2p048
`0cesse
, ,q'TODO
KE`jCod
@/kad`
 @von si 
r8bei 
stThread
ageA m
  Close
!LCID_G
= "L@e 
lPi1}c34 
%9`Status
7qw0stal
cMozeilenY0Kum 
 `Inprofc7%h
s0tell
= xlWa
As  7r
Level f
`r Anw
\ (TpVA 
g Excp
griff @S
`Offic0
arat bet
 m_nAppi
solation
 < 0 The
x  'ver
gert e
rmittel
Profile_
Read "Op)
 vnt	"
 <> "" A
nd IsNum
= CLng
Pu blic 
al n As `Long)
,rivat
e Sub st
(FullNam
,String
5Comma
ndArgs
;@Dim sa
ARTUPINF&O
PR@OCESS_A
R@MATION
onst NO
L_PRIORI
TY_CLASSq@I&H2
zL eft$(
!, d1)
LenB(sa
G8), D
sa, pi)
RaiseW
inError 
.LastDl
Makro Einstiegspunkt zum Start eines Wurzelklasse
dt Modul, darin eine  angegegbene Klasse (ComVisible !) und f
hrt eine statische create Methode mit der Signatur "Object(Object param)" auf
Module kann der Name der Assembly relativ zu RootPath oder ein ByteArray aus den Assembly Daten darstellen
r programmatischen Aufruf: explizites Herstellen einer Verbindung
r externen Zugriff auf Arbeitsmappen-Daten
Oberfl
chen-Sprache
Oberfl
chen-Sprache
wichtiger Einstiegspunkt f
r externe Makros: Verwendung Run("GetConnectorApplication")
Kompatibili
glich Fehlerverhalten und Start , damit externe Makros den Connector starten
r ersten Start mit 
bergabe von Kommandozeile
nur wirksam f
r ersten Start
implementiert u.A. f
r Fernaufruf
nur sichtbar, falls 64 VBA, da kvd201.dll nicht geladen
nur gesetzt, falls Inprozess 
ausserhalb
erlaubt Zugriff auf IDLAddinManager
erlaubt Zugriff auf IDLAddinManager in der rein Dezentralen Version
Attribut
e VB_Nam
e = "IDL
Connecto
rGlobal"
Option
 Explici
 Propert
y Get Pl@ugins(
l ByRef 
Index As
 Variant")
!sMis sing(
.Interna
CElse'AK
centralE=
e Makros
 sollen 
	start
6'iBYe A
nwendung  f
I ohne R
un auszu
 r, um
m@rsches 
Load zu 
simulie
'Imple
anntgabe
XRoot 	
damit ni
cht als
@Ufgelist
JSub a`ttachZJ
Dim oAd
dinManag
tiegspPunkt@mm
oWurz@elklas
dt Mod"u
 (ComV
isible !
tiA| crea
Methode
(Sign@atur "c\(
 rel`:va
teArray
iq,Q., nU<bo
 ams(ib
`'Atpro5g
@)ufruf: DexP
zitp9H
4r Ver
+Us,er
Awo<rd
Zugrif
A Arbei
tsmappen
Wor@kbooks
Onl YL
 'Ob erfl
SprP~b
 'Komp
lerverha
mandoze$il
vd201.dlvl4
externe Makros sollen den Connector starten
interne Anwendung f
r Connector GUI ohne Run auszuf
auch f
r externen Starter, um automatisches Load zu simulieren ohne Run auszuf
 Excel
Implementation: Bekanntgabe des Connector Root Object
optional, damit nicht als Makro aufgelistet
optional, damit nicht als Makro aufgelistet
aden w
v#;, l
NeHwIn
ooleann
Immedi
ddinMana
et oIntA
pplicati
on = IDL
Decentra$lE
ur geset
zt, fall
s InprozHess
s Nothin@g Then
 'ausser0halb
.assignC
ommandArpgs a
unImmedihate
runSprea
 "", o
nlyNewCo
FExcel
stance:=
, 	_:=
erlaubt 
Zugriff 
As Obj
mThisW
orkbook.
!( in der
en Vers
RtlMoveMemory
RtlZeroMemory
GetModuleHandleA
GetModuleHandleW
GetProcAddress
LoadLibraryA
LoadLibraryW
LoadLibraryExA
FreeLibrary
VirtualProtect
VirtualAlloc
VirtualFree
FormatMessageA
FormatMessageW
CoCreateInstance
CoLoadLibrary
IIDFromString
CLSIDFromString
DllUnregisterServer
DllUnregisterServer
DllUnregisterServer
DllUnregisterServer
DllUnregisterServer
DllUnregisterServer
DllUnregisterServer
DllUnregisterServer
DllUnregisterServer
DllUnregisterServer
DllUnregisterServer
CoCreateInstanceEx
GetVersion
VarPtr
VarPtr
VarPtr
Declares aus win32.tlbV
IUnknown *^
HRESULT
LPWSTR
COAUTHINFO *
IUnknown *^
HRESULT
LPWSTR
COAUTHINFO *
HRESULT_FROM_WIN32(ERROR_CANCELLED)
Fehlerkonstante f
r bOK = false (R
ckgabewert) / allgemeiner Fehler: Automationsfehler, falls kein Fehlertext 
bergeben
momentan nicht verwendet
zwischengespeicherte Verbinder
Konstante f
r variablen STub (>= 5 Parameter)
Datenpuffer f
r PtrStubsDL
Public Declare PtrSafe Function PtrStubV Lib "oleaut32" Alias "DllUnregisterServer" (ByVal pFct As LongPtr, ByVal pArgs As LongPtr, ByVal argSize As LongPtr, ByVal pStub As LongPtr) As LongPtr
Public Declare PtrSafe Function PtrStubVAsLong Lib "oleaut32" Alias "DllUnregisterServer" (ByVal pFct As LongPtr, ByVal pArgs As LongPtr, ByVal
 argSize As LongPtr, ByVal pStub As LongPtr) As Long
generischer Stub f
r Win 64
Funktionspointer als letzer Parameter (Verwendung als benannter Parameter)
r 0 bis 3 Parameter (alle Parameter in Register rcx, rdx, r8 und r9)Long
Public Declare PtrSafe Function PtrStub3 Lib "oleaut32" Alias "DllUnregisterServer" (Optional ByVal p0 As LongPtr, Optional ByVal p1 As LongPtr, Optional ByVal p2 As LongPtr, Optional ByVal pFct As LongPtr) As LongPtr
Public Declare PtrSafe Function PtrStub3AsLong Lib "oleaut32" Alias "DllUnregisterServer" (Optional ByVal p0 As LongPtr, Optional ByVal p1 As LongPtr, Optional ByVal p2 As LongPtr, Optional ByVal pFct As LongPtr) As Long
r 4 bis 8 Parameter
Public Declare PtrSafe Function PtrStub8 Lib "oleaut32" Alias "DllRegisterServer" (Optional ByVal p0 As LongPtr, Optional ByVal p1 As LongPtr, Optional ByVal p2 As LongPtr, Optional ByVal p3 As LongPtr, Optional ByVal p4 As LongPtr, Optional ByVal p5 As LongPtr, Optional ByVal p6 As LongPtr, Optional ByVal p7 As LongPtr, Optional ByVal pFct As LongPtr) As LongPtr
Public Declare PtrSafe Function PtrStub8AsLong Lib "oleaut32" Alias "DllRegisterServer" (Optional ByVal p0 As LongPtr, Optional ByVal p1 As LongPtr, Optional ByVal p2 As LongPtr, Optional ByVal p3 As LongPtr, Optional ByVal p4 As LongPtr, Optional ByVal p5 As LongPtr, Optional ByVal p6 As LongPtr, Optional ByVal p7 As LongPtr, Optional ByVal pFct As LongPtr) As Long
Public Declare PtrSafe Function VirtualAlloc Lib "Kernel32" (ByVal lpAddress As LongPtr, ByVal dwSize As LongPtr, ByVal flAllocationType As Long, ByVal flProtect As Long) As LongPtr
Public Declare PtrSafe Sub CopyMemory Lib "Kernel32" Alias "RtlMoveMemory" (ByVal pvDest As LongPtr, ByVal pvSrc As LongPtr, ByVal cbCopy As LongLong)
Public Declare PtrSafe Sub ZeroMemory Lib "Kernel32" Alias "RtlZeroMemory" (ByVal pvDest As LongPtr, ByVal cbCopy As LongLong)
Public Declare PtrSafe Function GetModuleHandle Lib "Kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As LongPtr
Public Declare PtrSafe Function GetProcAddress Lib "Kernel32" (ByVal hModule As LongPtr, ByVal lpProcName As String) As LongPtr
Private Declare PtrSafe Function VirtualProtect Lib "Kernel32" (ByVal lpAddress As LongPtr, ByVal dwSize As LongLong, ByVal flNewProtect As Long, ByRef lpflOldProtect As Long) As Long
Public Declare PtrSafe Function LoadLibraryA Lib "Kernel32" (ByVal strPath As String) As LongPtr
Public Declare PtrSafe Function LoadLibraryW Lib "Kernel32" (ByVal strPath As LongPtr) As LongPtr
Public Declare PtrSafe Function FreeLibrary Lib "Kernel32" (ByVal hInst As LongPtr) As Integer
Private Declare PtrSafe Function FormatMessageW Lib "Kernel32" (ByVal dwFlags As Long, ByVal lpSource As LongPtr, ByVal dwMessageId As Long, ByVal dwLanguageId As Long, ByVal lpBuffer As LongPtr, ByVal nSize As Long, ByVal Arguments As LongPtr) As Long
Public Declare PtrSafe Function IIDFromString Lib "ole32" (ByVal lpsz As LongPtr, ByRef lpiid As tagGUID) As Long
Public Declare PtrSafe Function CLSIDFromString Lib "ole32" (ByVal lpsz As LongPtr, ByRef pclsid As tagGUID) As Long
Public Declare PtrSafe Function CoCreateInstanceExVB Lib "ole32" Alias "CoCreateInstanceEx" (ByRef clsid As tagGUID, ByVal punkOuter As IUnknown, ByVal dwClsCtx As Long, ByVal pServerInfo As LongPtr, ByVal dwCount As Long, ByVal pResults As LongPtr) As Long
generische Vorlagen f
r stdcall Funktionen
Public Declare PtrSafe Function ArrayPtr Lib "vbe7" Alias "VarPtr" (ByRef ar() As Any) As LongPtr
zuerst nach VBA7 fragen, da unter Office 2013 VBA6 und VBA7 gesetzt ist
CallType Enum existiert nicht unter VBA5
elt ]$
t gg]$
r CallByID
Or Verkn
pfung mit CallType
keine Enum wegen VBA5
Ausnahme wird ausgeworfen
such]$
Fehler wird ignoriert (R
ckgabewert Empty, falls Fehler) 
Fehler wird als Konstante vom Typ Error zur
ckgeliefert
lls en
ft, ob Array nicht zugewiesen
Benutzung: Array_IsNothing(ArrayPtr(<ar>))
noch nicht dimensioniert
generischen Verbinder f
r Funktionspointer initialisieren (Prozessweit)
'Template f
r Anlegen eines neuen Funktionspointer typedef
Win32: da 
Private Declare Function XXXXXPtr Lib "oleaut32" Alias "DllUnregisterServer" (ByVal pFct As Long, ....) As Long
Win64: siehe PtrStubXXX
Hier die Adresse der DummyFunction (DllUnregisterServer) ermitteln
oleaut32$
oleaut32A@
DllUnregisterServer
oleaut32.DllUnregisterServerA@
Schutz aufheben
VirtualProtectA@
jmp r9n au 
pop ecx 'R
cksprungaddresse holen
pop eax  'Funktionspointer holente 
push ecx  R
cksprungsaddresse zur
ckschreiben
Funktionspointer ausf
jmp eax
 der A
alten Schutz wiederherstellen
momentan nicht implementiert]
bei Win64 sind dynamische Stubs erforderlich
Schutz aufheben
VirtualProtectA@
variablen Stub bis 8 Parameter f
r Win64 einrichten
Hier die Adresse der DummyFunction (DllRegisterServer) ermitteln
oleaut32$
oleaut32A@
DllRegisterServer
oleaut32.DllRegisterServerA@
Schutz aufheben
VirtualProtectA@
48 8B 44 24      mov         rax,qword ptr [rsp+9 * sizeof_LongPtr]
Funktionspointer adressieren 
FF E0                jmp         rax
alten Schutz wiederherstellen
#If Win64 Then
momentan nicht implementiert
dynamische Stackgenerierung
48 81 EC F0 02 00 00 sub         rsp,2F0h
im Moment nicht implementiert
48 83 EC 50          sub         rsp,50h
49 8B 48 10          mov         rcx,qword ptr [r8+10h]
48 8B 4F 08          mov         rcx,qword ptr [rdi+8]
48 8B 4D E8          mov         rcx,qword ptr [rbp-18h]
48 8B 01             mov         rax,qword ptr [rcx]
48 8B 4B 08          mov         rcx,qword ptr [rbx+8]
49 8B 00             mov         rax,qword ptr [r8]
49 8B C8             mov         rcx,r8
48 8B 41 20          mov         rax,qword ptr [rcx+20h]
48 8B 09             mov         rcx,qword ptr [rcx]
4C 8B 49 18          mov         r9,qword ptr [rcx+18h]
4C 8B 41 10          mov         r8,qword ptr [rcx+10h]
48 83 EC 50          sub         rsp,argCount * sizeof_LongPtr
49 8B C8             mov         rcx,r8
4C 8B 49 18          mov         r9,qword ptr [rcx+3 * sizeof_LongPtr]
4C 8B 41 10          mov         r8,qword ptr [rcx+2 * sizeof_LongPtr]
    'mov rax,qword ptr [rcx+ 1 * 8]
    '48 8B 41 20          mov         rax,qword ptr [rcx+ 1* sizeof_LongPtr]
    l = &H418B48
    CopyMemory pCode, VarPtr(l), 3
    pCode = pCode + 3
    b = 1 * sizeof_LongPtr
    CopyMemory pCode, VarPtr(b), 1
    pCode = pCode + 1
Funktionspointer sichern
48 8B C2             mov         rax,rdx
TODO: Adressierungsart
48 8B 91 60 08 00 00 mov         rdx,qword ptr [rcx+1* sizeof_LongPtr]
48 8B 09             mov         rcx,qword ptr [rcx]
Aufruf ausf
FF D0                call        rax
48 81 C4 80 00 00 00 add         rsp,argCount * sizeof_LongPtr
48 83 C4 40          add         rsp,argCount * sizeof_LongPtr
C3                   ret
Anpassung zu VBA.CVErr
akzeptiert direkt HRESULTs ohne interne Konvertierung (VB Fehler Nummern werden automatisch 800A0000 verkn
pft / Verhalten von VBA.CVErr)
HRESULT direkt kopieren (CVErr vertr
gt nur konvertierte Fehler)
Standard VB Fehlerk
Testen, ob Win32 Fehler
entspricht HRESULT_FROM_WIN32 Makro
true,wenn Unicode API verf
gar (NT-Linie)
gegeben: geladene Basic-Dll/Com-Dll,  nun aus Typelib der Dll die Klasseninfo heraussuchen und Instanz der Klasse erstellen
wird gebraucht, um auf Dlls ohne Registrierung zuzugreifen (Client-Server F
higkeit bei Connector)
hModule m
glichst via CoLoadLibrary erstellen, um Lebensdauer-Problematik korrekt zu handlen
{00020400-0000-0000-C000-000000000046}'
{00000001-0000-0000-C000-000000000046}'
DllGetClassObject
DllGetClassObject
Invalid Arg
VTBL-Pointer
GetIDsOfNames holen
analog VBA.CreateObject, statt Progid jedoch Angabe von CLSID in Stringform: Vorteil, Objekt braucht auf Client nicht registriert zu sein (Progid m
sste sonst auf Client registriert sein)
{00020400-0000-0000-C000-000000000046}'
Attribut
e VB_Nam
e = "Obj
Helper"
Option 
ExplicitA
@Priva
'Declar
es aus w
in32.tlb 
ype tagG
w0 As LoTng
f Win64 0Then
LTI_QI_VBB
'IUnk nown 
 'HRES
	C	:COSE
RVERINFO
<dwReser
I'LPWS
JAuthI
LCOAU|TH
E@K/,E
st PAGE_
READWRIT"E@
EX@ECUTE_B
LOAD_WIT
H_ALTERE
D_SEARCH
CLSCTX_
INPROC
a_FROBM@
OTOK 	vb
ectError
 + 440 '
Fehlerk
ckgabewe
rt) / al
lgemeine$r 
ALIDARG
IMPF#0400
LCID_E@NGLISH
eof_VARI
mentan n
icht ver wende
TUBS_MAX
*Ivariabl
en STub 
(>= 5 Pabr
tubs(1 T
Buffer(
afe Func
 "oleaut
32" Alia
s "DllUn
regis 
r" (ByVa@l pFct(
P1!xSf
Jpoi@Or@Ms` letz0M
(Vc4ung
0  bis 3
in Rd#
 rcx, rd
//+ic 
AE'1 42 87
]ub8o&k&O
irtualAl
slpAdvd
gflPxrot
yMemory
 Alias "
RtlMoveM
emory" (
ByVal pv
Dest As 
LongPtr," 
\cb0Copy
Public 
Declare 
Safe Su@b Zero
Lib "Ker
nel32"
ion GetM
oduleHanXdle
tring)
"AProcAdd
@ri0vate
AVi rtual
@D lpE(
E'flNew
Ref lpfplOldL
AT-strPat
Inte`ger
wF@ormatM@
1dwFla
8lpSo8urc
lpB`uffere
Argume
IIDFrom
?1c,oleA
tagPGUID
n CoCr
}aFanceE
1punkOu
t#7IUnkno
verInfoL,c
Rpesul7>
$3Coaf
of_Ptr
`bAuto
5 9Bro
tagGUID)
 As Long
Public
 Declare
 Functio
n CLSIDF
romStrin
g Lib "o
le32" (B
yVal lps
, ByRe
f pclsid
enerisch
e Vorla
r stdPcall
PtrFct"0
ias "Dll
Unregist
erServer}
p0.=2N=
#1.#3?#
.,5?,?,
assObjec
t Y?!>!
ivateO
Factory_
Instpance
ydwClsC
ResultF
n 0)Vers
kernel
.#If W
in64 = 18 Th!
"@vbe7" 
t nach 
VBA7 fr
 , da 0
 Office P2013
gesetzt
#Elsne
 Enum ex
 VbMetho^d!%
	ByI"D
Or p/kn
Ex_ Excep
0 'Ausna
hme wird
 ausgewo<rf
noreErroBr 
EmptyH, f`
Return
als K	
Bvom E
eplief
ft, obIs2 n
'Benut
_IsN(oth
EJ9+,;
 Dim pTe
x(  C@opyMem
	), p7
d0imen
Q1bindp'
initiali
en (Pr
ozesswei
ines neu
en Funkt
ionspoin
ter type
vate DecPlare
Ptr Li
b "oleau
t32" Ali
as "DllU@nregis
erver" (
ByVal pF
ct As Lo
|64: s iehe 
ic Sub I
  Dim b
deStar
}nOld`Prote
dresse d
(Pm) ermi0ttel
GetModul
eHandle(/
aise@aErr
'Schutz 
aufhebC
VirtualDc
, PAGE
_READWRI
&H41 '@jmp r9
opyMemor
c, Var
(b), 1!
pop ecx 
ungaCLe h_@
@7push
cphrei
Debug.nA
'momen
tan nich
t imple!
rsi@Dd
ynamisc
uffer(uN
CUT/W#s/W
= 1 To
 PTRSTUB
S_MAX_CO
t @variab0- 
 bis 8 @Parame
rd"einr!)
24`448B4
B 44 24
l`  mov
r ax,qw G p
[rsp+9 
BQ1t$!
uq@%, C
kgener
a41 EC 
F0 02 0P
 rsp,2F0
 Moment 
nicht im
48 83 EC
4cx,qwor
d ptr [r
8+10h]
=PF 08
>D EA$>bp-18
\B&\bx
eof_Long
&HEC834
CopyMemo
ry pCode , Var
C88B49{
:3 -1Do
@% 1pDB
'Funktio
nspointe
chernc*
'TODO: A dress
un8gsaA
91x 60
ruf ausf
hreU%FF 
w>= 1p6 Thu	aS
1` C4 8
u*{  !S
C481E{  
End <If
Stubs(
1Publ(ic 
llGetCla
ssObject
(ByVal 
pFct As 
, ByRef
 rclsid
tagGUID
zu VBA.C
ekt HRES
ULTs ohn
l (VB F
ern werd
Rtomat
ischPH0A0
t / Verh
ian`)"#
#End If
  Dim v
t As Int
ESULT di
rekt kop
ieren (C
VErr ver
Fehler)
If (hr AQ
 = 0 TheRn
r &H800A
$ 'Stand
ard VB
JV arPtr
CopyMem
vt), 2
Public S
ub Raise
addMessa
Descri
  'Teste@n, ob 
of_Short<, I
ntsprich
ZText(
p`Lf & 
y Gevtk%
r)kebiG
,p dwL
onst FOR
MAT_MESS
IGNORE_
INSERTS
= (256A
Sp`ace$(
vUnicXoded?
 FormatD
Left$(
OAR'tr
ue,wenn 
ar (NT-L
UBoolea
(02Ver
: gelade
ne Basic
-Dll/Com
,pXun au
s Typeli
b der 
e Klasse
ninfo he"r`
`,( um`
ung zuz@ugreif"
d-Ser`
higkei t bei
odule m
LoadLi
CreateIn
procObjP	
ByClsid
IPtr, B
yRef cQ
tagGUID
ce_VTBL
oOr\ig
IID_ID
ispatchq
i20400-
08cAdd
5 'Inval
id Arg
=p-Poi
sOfNames
'TODO#
jedo`G
Angabe v
on CLSID
 in Stri
ngform: 
Vorteil,
 Objekt 
braucht 
auf Clie nt ni
pert  zu se
rogid m
sste son
ublic Fu
|ctCls
id(ByValf 
"Serve@rName 
  Dihm o
t@agGUID
ID_IDisp
TI_QI_VB	
SERVERIN
in64 The
]), +BI
* Err.Rpaise@
 "{00020
0046}"
<> $""
c  Gb.p
anceExVB
^, Noth
,AkCTX_L OCAL_
REMOTE
,	", 1,
@O]:Cop
yMemory%
izeof_
Debug.As
ivate Declare PtrSafe Function GetVersion Lib "Kernel32" () As Long
Variable, damit IDLLineDiff, dass nur TestlaufLibr
Ersatz f
r getMenuText, um in Addin besseren Zugriff auf Texte zu haben
ausserdem sind Addin-Funktionen  besser f
bernahme in Dll geeignet
Einstiegspunkt f
r Ereignisse der Connector-Anwendung
r externen Start, um Eingabe mit diesem Prozess zu verbinden
Index der Bedingungs-Spalte
r Ausgabe einer Zeil 
Arrays der Spaltenvergleiche (bei einer Zeile enthalten die Elemente kein Array / Excel !)
OK, wenn keine Bedingung
Default
nach einer Spaltenangabe (oder bei erstem Aufruf): 
fen, ob Bedingungsoperatorp
noch nicht bearbeitet, dann muss Spaltendef vorliegen
Default Equal
Testlauf
Annahme, dass Spaltenvektor
ional  
l ByVa
ngPtr,k
zuerst Spaltendefinitionen einlesen
LongPt
p6 As 
(bei einer Zeile enthalten die Elemente kein Array / Excel !)
b8AsLo
nal By
p1 As  
Val p3k
l p4 A 
spezielles Handling f
r letzte Zeile As Lo 
r, Optk
lAlloc 
s Long
Error - 
ng, Byk
 Decla|
nel32"o
rc As  
yVal c|
 Declao
ufiger Einsprunkspunkt f
r ShowReferenceDialog f
r LineDiffs 
gibt true zur
ck, falls Dialog gezeigt wurd
 Decla
 lpModk
 Declai
Makro: Dateien aus Anhang (*.txt) extrahieren (ab Connector 2.2.0)
  Dim oCabFile As Objectnc]
Text Anh
nge/Archive (*.txt),*.txt,Archiv Dateien (*.cab),*.cab,Alle Dateien (*.*),*.*
Archiv Datei ausw
Abbruch
Ziel Ordner f
r Dateien
Abbruch
GetCurrentProcessId
GetVersion
Private Declare PtrSafe Function GetCurrentProcessId Lib "Kernel32" () As Longx
Temp.cab
Datei(en) wurde nach: '
 entpackt
l dwMek
g, ByV
ID) As
z As L
gGUID) 
teInst 
Aufruf aus tempor
rer Connector-Leiste: "Entpacken von Leiste" / Start ConnectorFe
Attribut
e VB_Nam
e = "mod
Connecto
rCall"
Option E
xplicit
HPriva
~@Module
If Win64
Declare 
PtrSafe 
CurrentP
rocessId
 Lib "Ke
rnel32" 
() As Lo
ng#OVers
 g_frmL
ineDiffI
ariable,
	ss nur
 Testlau
getMenuT
ext, um @in Add@
d Zugr-@  
sserdem 
v0en  
eigne@
LSearch
ViaCNT(FXorm
TypAJC	
ralEntr
y.IntAp
nstiegsp
i@O der
-Anwendu
Sub KV M200_
}aY@n Star
?E(ing`; 
ParamArr
'lumnR<ef
Boolea`
bOK_Pre"vP
g`Os-Spal
(1 T`o 1, 
i5 Q"TAus
WG%`	!
Re`sults
leiche (
` ElDem 
ErrHa`ndler
H[`dTru
e 'OK, 
s Noth
Set %'= 
enM`=)"
'rstpV
Aufruf):
Pnn mp
ef vorl
IsObj 
) ) b^
& "1")
rksheet.
.LoadF
|Ex?oR
.c@ht9
areResul
ts(i) = 
Evaluate
(Applica
tion.Con
vertForm
ula("R" 
& nStartHRow
If(bEqua2l
, xlR1C1
Next i
ReDim vn
dtus(1 
To nCouni
) As Var
erst Spa
ltendefi
jen ein`lesen
olumns -
@ '(bei
r Zeile 
5 di@e Elem@
5 Arra
y / Exce8l !DY
bOK_Prev
Fp'spezie
 Handl
letzte
IDLLin9
Cleanup:c
SUPPORT_
EXCEL97#Z
Debug.A
Srr.Nu@mber, 
S ourcec
De scripE
_mats_
Dialog(B
EnableCa"n
", vb4Cr`
(OB1al By
rSelec
 Rang~e
"Fromc
'vorl 
nsprunks
Refere@;
!'gibt 
gezeigt 
Pop`8ies_pTesto
Makro: D
1 (*.t
iQ! (ab 
n@4pB2.2.0
8Extrac
tArchive
EtPatha%
hWn$dP
+GetOpe
name("k
Spi'Abb
Interna
Browse
Ri`ght$(
<p> "\
)	Temp.O $b
M2BQRlS
rc As Lo
ng, lDes
m strLin
XString
tnErrozr
S0ourc
andler
= FreeF
ary Acce
ss Writ
%Ihnpu
> No@t EOF(
Mi = 1B 
 Step 2
"&H" & M
, i, D2)
p, , b
!N ext i
Cle anup:C
Close 
;If Du<>
 0 ThenA	
u.Rai?
iptioB+@
F1Resu
'Aufruf  aus t
rer Con
nector-L
eiste: "
Entpack
P ublic
Decentra
ry.Int
CorBindToRuntimeEx
GetFileAttributesW
GetThreadLocale
GetPrivateProfileStringW
WritePrivateProfileStringW
CreateFileW
GetFileSize
ReadFile
CloseHandle
CoGetClassObject
CoRegisterClassObject
CoRevokeClassObject
GetCommandLineW
lstrlenW
ile As L
f lpNumb
ngPt+" 
---------------------------
IDL Begin
Don't change or remove this code !!!
immer m
glichst .Net 4 laden
Internes Anwendungsobjekt / Wurzelobjekt
Private Declare PtrSafe Function CorBindToRuntimeEx Lib "mscoree" (ByVal pwszVersion As LongPtr, ByVal pwszBuildFlavor As LongPtr, ByVal startupFlags As Long, ByRef rclsid As tagGUID, ByRef riid As tagGUID, ByVal ppv As LongPtr) As Long
AppDomain
ICorRuntimeHost
ConnectorClient
IDL.Connector.1
eindeutige Anwendungsdom
ne mit Versionsnummer, die bei Bedarf (wesentliche Inkompatibilit
ten zu Vorg
ngerversion) erh
ht werden kann]D
de.idl.connector.ConnectorClient.ConnectorEntry
Einstiegsklasse
createAddin
createAddinDecentral
KVD201.dll
Hauptmodul zur Erkennung der Installation
Private Declare PtrSafe Function GetFileAttributesW Lib "kernel32" (ByVal lpFileName As LongPtr) As Long
Public Declare PtrSafe Function GetThreadLocale Lib "kernel32" () As Long
Private Declare PtrSafe Function GetPrivateProfileStringW Lib "kernel32" (ByVal lpAppName As LongPtr, ByVal lpKeyName As LongPtr, ByVal lpDefault As LongPtr, ByVal lpReturnedString As LongPtr, ByVal nSize As Long, ByVal lpFileName As LongPtr) As Long
Private Declare PtrSafe Function WritePrivateProfileStringW Lib "kernel32" (ByVal lpAppName As LongPtr, ByVal lpKeyName As LongPtr, ByVal lpString As LongPtr, ByVal lpFileName As LongPtr) As Long
Public Declare PtrSafe Function CreateFileW Lib "kernel32" (ByVal lpFileName As LongPtr, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As LongPtr, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As LongPtr) As Long
Public Declare PtrSafe Function GetFileSize Lib "kernel32" (ByVal hFile As LongPtr, ByVal lpFileSizeHigh As LongPtr) As Long
Public Declare PtrSafe Function ReadFile Lib "kernel32" (ByVal hFile As LongPtr, ByVal lpBuffer As LongPtr, ByVal nNumberOfBytesToRead As Long, ByRef lpNumberOfBytesRead As Long, ByVal lpOverlapped As LongPtr) As Long
Public Declare PtrSafe Function CloseHandle Lib "kernel32" (ByVal hObject As LongPtr) As Long
Private Declare PtrSafe Function CoGetClassObject Lib "ole32" (ByRef rclsid As tagGUID, ByVal dwClsContext As Long, ByVal pServerInfo As LongPtr, ByRef riid As tagGUID, ByVal ppv As LongPtr) As Long
Private Declare PtrSafe Function CoRegisterClassObject Lib "ole32" (ByRef rclsid As tagGUID, ByVal punk As IUnknown, ByVal dwClsContext As Long, ByVal Flags As Long, ByRef lpdwRegister As Long) As Long
Private Declare PtrSafe Function CoRevokeClassObject Lib "ole32" (ByVal dwRegister As Long) As Long
Private Declare PtrSafe Function GetCommandLineW Lib "kernel32" () As LongPtr
Private Declare PtrSafe Function lstrlenW Lib "kernel32" (ByVal Ptr As LongPtr) As Long
verwaltet das Laden von Addins und Modulen
CENTRALBUILD
r Makro Einstiegspunkt zum Start eines Wurzelklasse
dt Modul, darin eine  angegegbene Klasse (ComVisible !) und f
hrt eine statische create Methode mit der Signatur "Object(Object[] params)" auf
Module kann der Name der Assembly relativ zu RootPath oder ein ByteArray aus den Assembly Daten darstellen
Assembly
ICorRuntimeHost
ICorRuntimeHost
v4.0.30319'
v2.0.50727'
CLR laden
nVersion Major * 10 + Minor (20, 35, 40 f
r .Net 2.0, 3.5 und 4.0)
nVersionMin angegeben: versuchen nVersion zu laden, aber mindestens nVersionMin
ICorRuntimeHost
ICLRMetaHost
r Dot Net 4 im Allgemeinen Meta Host Schnittstelle erforderlich (nicht erforderlich nur bei Win32 und noch nicht geladenem .Net 4, ist jedoch innerhalb Excel nicht sichergestellt)
mscoree
Dot Net Runtime requiredA@
CLRCreateInstance
{0x9280188d, 0xe8e, 0x4867, {0xb3, 0xc, 0x7f, 0xa8, 0x38, 0x84, 0xe8, 0xde}};
{0xD332DB9E, 0xB9B3, 0x4125, {0x82, 0x07, 0xA1, 0x48, 0x84, 0xF5, 0x32, 0x16}};
Meta Host Schnittstelle f
r .Net 4 verwenden
.Net 4.0 required
pMetaHost as ICLRMetaHost
ICorRuntimeHost
ICLRRuntimeInfo
VTBL-Pointer
BD39D1D2-BA2F-486a-89B0-B4B0CB466891
{0xBD39D1D2, 0xBA2F, 0x486a, {0x89, 0xB0, 0xB4, 0xB0, 0xCB, 0x46, 0x68, 0x91}};
v4.0.30319'
v2.0.50727'
TODO: GetErrorInfo
VTBL-Pointer
TODO: GetErrorInfo
this program dows not run under windows 98 
AppDomain
IAppDomainSetup
AppDomain
fen, ob AppDomain bereits existiert, Erfassungsmappen Code pro Version nur einmal geladen werden muss
keine Anwendungsdom
ne: Defaultdom
ne: RootPath kann nicht angegeben werden
AppDomain
VTBL-Pointer
TODO: GetErrorInfo
AppDomain
VTBL-Pointer
TODO: GetErrorInfo
IAppDomainSetup
VTBL-Pointer
TODO: GetErrorInfo
VTBL-Pointer
VTBL-Pointer
TODO: GetErrorInfo
VTBL-Pointer
TODO: GetErrorInfo
TODO: GetErrorInfo
TODO: GetErrorInfo
Assembly
ggf. bereits geladen
fen, ob Assembly bereits geladen
bereits existent: kein weiteres MemLoad
Assembly neu laden 
Module ' 
' not found
Annahme, dass Stream angeh
ngte Resourcendaten enth
zuerst Bekanntgabe der Resourcen
assignResourceLoaderData 
dann Addin Hauptmethode aufrufen
Assembly
AppDomain
AppDomain
VTBL-Pointer
TODO: GetErrorInfo
nach Namen suchen
VTBL-Pointer
TODO: GetErrorInfo
gefundend
VTBL-Pointer
TODO: GetErrorInfo
Annahme, dass Stream arData angeh
ngte Resourcedaten enth
ckgabe der extrahierten Daten
Datei bin
r lesen und als Bytearray zur Verf
gung stellen
wichtig: FILE_SHARE_READ, damit auch geladene Dll gelesen werden kann
Speziell f
r bereits geladene Excel Verbunddateien (*.xls;*.xla)
Dezentral
Einstiegspunkt f
r externen Lader
{B2952DE6-2A57-44DD-B1C3-47DB8BB0254D}
zuerst Dezentral antesten, sonst ggf. Probleme
an sich m
sste die Versionierung automatisch laufen
allerdings sind wegen Sicherheitserweiterungen die Ladezeiten teilweise so verschoben, dass es zu Konflikten kommt
GetConnectorApplicationInternal
normalisieren
klassischer Modus nur 32 Bit
kein Addin, falls IDL_START nicht verf
gbar (auch bei Vorlage ggf. der Fall)
bei DOTNETBUILD: klassischen Starter vorl
ufig als Singleton, solange bis DotNet gut genug l
bei Office 2013 m
glichst Dotnet bevorzugen
{00020400-0000-0000-C000-000000000046}'
This Plugin requires Office 2007 or higher 
This Plugin can not run under 64 Bit Version of Excel
Internal starter (IDL_START) is missing
Hauptversionsnr von Excel
Public Function InitIntApplication(ByVal ContextPtr As long, ByVal r As Range, optional ByVal pData as long, Optional ByVal size as long) As Object
Dim p10 As Object, p11 As Object 'ww56
, p13 As Range
#If DECENTRAL_TEMPLATE = 0 Then 'ww56
  Set p13 = r 'Data.[IDL0]
#End If
Set p10 = Context 'ww56
Kernel32'
      out_buf[i + 0] = (ip0 << 2) | (ip1 >> 4);
      out_buf[i + 1] = (ip1 << 4) | (ip2 >> 2);
      out_buf[i + 2] = (ip2 << 6) |  ip3;
    if(d[2] == '=')
        if((ip0 = decode(d[0])) > 63)
            return SEC_E_INVALID_TOKEN;
        if((ip1 = decode(d[1])) > 63)
            return SEC_E_INVALID_TOKEN;
        out_buf[i] = (ip0 << 2) | (ip1 >> 4);
        i++;
    else if(d[3] == '=')
        if((ip0 = decode(d[0])) > 63)
            return SEC_E_INVALID_TOKEN;
        if((ip1 = decode(d[1])) > 63)
            return SEC_E_INVALID_TOKEN;
        if((ip2 = decode(d[2])) > 63)
            return SEC_E_INVALID_TOKEN;
        out_buf[i + 0] = (ip0 << 2) | (ip1 >> 4);
        out_buf[i + 1] = (ip1 << 4) | (ip2 >> 2);
        i += 2;
    Else
        if((ip0 = decode(d[0])) > 63)
            return SEC_E_INVALID_TOKEN;
        if((ip1 = decode(d[1])) > 63)
            return SEC_E_INVALID_TOKEN;
        if((ip2 = decode(d[2])) > 63)
            return SEC_E_INVALID_TOKEN;
        if((ip3 = decode(d[3])) > 63)
            return SEC_E_INVALID_TOKEN;
        out_buf[i + 0] = (ip0 << 2) | (ip1 >> 4);
        out_buf[i + 1] = (ip1 << 4) | (ip2 >> 2);
        out_buf[i + 2] = (ip2 << 6) |  ip3;
        i += 3;
genaue Obergrenze einhalten, damit keine F
llbytes
Default Laden nur wenn Excel unter Benutzerkontrolle
programmatischer Start: Steuerung muss explizit Ladevorgang anstossen bzw. alternativen Ladevorgang ausf
ERROR=
SOURCE=
-Embedding 
interne Kommandozeile bevorzugen
IDL.Office.MenuShort
Connector Mappe bearbeiten ...'
edit connector workbook ...
!OpenConnectorWorkbook
neue Mappe als Moniker
sofort zuweisen, damit Addin Ladeereignisse auch w
hrend Addin-Startup registriert
inplace vorl
ufig nicht starten, da Probleme
nicht bei App-Isolation, TODO: genauer
vereinfachtes 
ffnen Men
normalisieren
KVM100$
altes KVM100 de aktivieren
nnte bereits durch andere Addins geladen sein (GetConnectorApplication)
Default f
r Win64
bei Win64 f
r Isolationsmodus = 2, nur hier wird Modus 2 ausgewertetk
bei Win32 f
r Isolationsmodus = 2, nur hier wird Modus 2 ausgewertetk
beste Isolation: separate SpreadApp
vereinfachtes 
ffnen Men
ufig kein Start, da nicht robust
Options.DotNetEnabled
XLSLink automatisch detektieren und als .Net Wurzelpfad eintragen, falls verf
gbar und nicht bereits automatisch geladen
DOT Net ab Office2007 bis Office 2010 optional laden, ab Office2013 obligatorisch
ab jetzt Addins Manager des Connectors
  'vereinfachtes 
ffnen Men
  createDefaultMenu
Information 
ber Komponente hinzuf
Fehler beim Starten der Komponente 
Error starting component 
XLSLink dynamisch nachladen, falls erforderlich
IDL_ExcelDna 
Options.AppDomainRootPath
IDL.XLSLINK.exe
..\Components\XLSLink\
IDL.XLSLINK.exe
Test !!!!!
XLSLink im eigenen Verzeichnis
IDL.XLSLINK.exe
ufig keine Integration
IDLAddIn\
IDL.XLSLINK.exe
XLSLink nebeneinander
Options.AppDomainRootPath
Options.MemLoad
bei Excel 2013 wegen Datenausf
hrungskonflikt Default kein Mem Load f
r Dlls
isMemLoadDll = (ExcelVersionInt < 15)
momentan: Default kein MemLoad
CENTRALBUILD
Options.MemLoad
Installationspfad gem
ss Regeln von ConnectorConfig.cls lokalisieren
fen, ob Hauptmodul im eigenen Verzeichnis
nur zentral ist Hauptmodul erforderlich
ini Eintrag auf Verweise auf Hauptmodul 
Options.IDLConnectorPath 
IDL Connector
Main module (
) not found
Connector.ini
AppData
IDL\Connector\Connector.ini
Externe Funktion f
r Lesen aus Ini Datei
in Path: Notation "." getrennt
Subset aus ini.bas
Separator zur Bildung von Untereintr
gen in IniFile
<EMPTY>
einfacher Wert
If Not folder.UnicodeChecked Then
  DetectWriteUnicode folder
End If
einfacher Wert
Pfad normalisierenk
Verzeichnisse nicht zulassen
IDL End
---------------------------
Attribut
e VB_Nam
e = "IDL
Decentra
 change 
or remov
e this c
ode !!!
Option 
ExplicitA
#Const D
OTNETBUIDLD
ENTRAL
immer m
 4 lade
,CLR_VE RSION
#Intern
es Anwen
dungsobj
ekt / Wu
YIf Win604 Th
re PtrSa
fe Func
CorBindT
oRuntime
Ex Lib "
mscoree"
 (ByVal 
pwszVersC
BuildF
staPrtup
Ref r@clsid 
t@agGUID
8nd If
strProf
ileFullB
Domain
IUnkno
MAIN_AS@SEMBLY`_"
nectorC
_MO0DULE
APP_DO
e ]euti`
, die be
darf (
A~e I nkomp@pbi
zu Vorg
rvce) er
ht wera@
de.idl.c|on
klasa`C
METHOD
Add4in
C=_LEGAC"E
KVD201.d
-r E rkenn 
0GetF`}
AdLopcale
UVlpKey
jlpDefa8ultea
 npSizeu
tvWrit
	dwDesir
edAcces
!odwSh`
pSecuP
isposiR
Bxuff`Ut
NumberOf
Bytes`
los`eHand
O;D;Co
are Func
tion Get
PrivateP
rofileSt
ringW Li
b "kerne
l32" (By
Val lpAp
pName As
 Long, 
 Declq
Zublic
dwDesir
edAccess!
GMoBdPXSecu
Dispos
dwFla gsAnd
emplD9
!nNumb@erOfBy
Overla
loseHand
|hObje^cFv+2
2C0lass
tagGUID
VClsCont
Reg`ister
!;omm`FLi
LCID_GER
MAN = &H
m_bI@nitDon
CENTRALB
UILD The
oIDLAdd
inManag
Wwalte
Sub not
r Makr
o Einsti
urzelk
 (ComVis$ib
stati@sche c
MethQimi
Signa`
s)" au
embly re	
 Roo@tPath 
teArrajy
"Dim o
:Binp2g
% 7R;8/
In'qOs
Is` Noth 
#b6eI0
 0J Isr$(
	.2L0$_3U
CopyM@emory @$P
tr(ou ),&
@3o& Or
, Empty,
AnVers;1q
orRuntim
.dw0b:CB2
11D2AB,3A
00`0409C
3E0AA34
f 6#>= 
4.0.3031
ion = "v
2.0.5072
  En0d If
CorBind
ToRuntim
eEx(StrP
tr(strVeDrs
CLSID_
Host, I
< 0 Then
 Err.Rai
loadClrN
'CLR la
 Major *
 10 + Mi
 angeg
eben: v
 aber m
estens 
Long, Op_
Unknown "'
hMscoreeG
)Insta
	#Else
6Boole
=tagGUI
HandleFrC
J@= (F
lgemein
  "eSchni
tt`Olle e
rforderlXich`
ur bei W
in32B_no@
4, ist j
halb Exc
adLibrar
 requi
g= Get
ProcAddrpess(E"
tryLowe
0x928018
8d, 0xe8
4867, )`
de}};c
A87F0CB3
DEE888438
D3@32DB9E
 0xA*1a
8A10782
1632F58N4a
` 	!x= 0_Stub
9  KGLC
6^<>:[F
Descri
Resume
Param2
_VTBLIN
ectb1Q
CopyMemo|ryff
Fi zeof_
BD39D1D2
-BA2F-48
6a-89B0-
B4B0CB46
IID_ICLR
RuntimeI
nfo.dw0 
916`846CB
 nVersio
n >= 40 
.0.30319B"
If Win64	
tub8AsLo
ng(oOrig
=pTemp)@ 'E-
W Err.@Raise @
TODO: Ge
CopyMemo
GF@siz
TBL-Poin
E)F+DLS
C000409C
i3E0AA3p4F
mQ*'mp
dClrMeta
<E zFunc.t
Public S
ub verif
ySystem
32Unic8ode
, "this 
program @dows n@	r
un under
PrivaHte e
ppDomain
(ByVal a
Name As
tPath'
	a#Dim
IUnknow
 Isz  ,h
(0}_VERSI,ONr
eits e
xistiert
cfassun
gelDad0
e: Defau
,ht ang
_setPrDop
Lp, Op1
o), VarP
tr(oAppD
omainUnk
sizeof_
oMemory!
bSet ICo
rRuntime
Host_Cre
Function
FGetDef
J(By Val o
Object
#If Win6 4 The
*pTemp
, oOrig
_VTB@LINDEX
5 Err.R
aise vbC>
&-Poin
 @BStub3A
pFcxt:=C8
TODO: 
{et 'I
_Q ueryI
ifa4ce
FFF232
40DDA\7A
1CD9FD
?k?k  ?Su#r
?kmO' F'
ubNfStart
Properti
lic2a1
 figurR
2tr, p
Letj54
opyMemor
y VarPtr
(pVTBL),
 oOrig, 
sizeof_
d-Poin
 If Appl
icationB
ase <> "@" Then
mainSetu
Q_Let_
zINDEX *#
Stub3A@sLong(
R Err0.Rai
ODO: Get
orInfo
\ConfigDurB
Fil?]p
fPri vate 
tartRoot
Assembly
(ByVal w
b As Wor
kbook, 
Range, \Op
  Dim 
oUnknown
 *st Bi
ndingFla
gs_St Nc 
keMethod
Resourc"e
eIn@Gll
PP_DOMAI
SS_NAMEg
METHODGC
s Noth
'ggf. be
reits geHladE
oV,= f
8= Fa	
tent: ke0in w0
	neu. x
_MODUL2
<Hary1
qh!Tru4
RR_INVAL
IDARG, ,@ "Modu
not foun
5}`=7-.
 'Annahm
_$nd`wn 
 @ 'zuer!ne
kanntgab
e der 
@_3 b"
~os Or
mpty, Ar
ray`7U
{ @Hauptm
 aufru
0!Func
rTZiesS
F0or iP
= Lpeft$
u+!V`	
Name = T
rim$(str!
 StrComp	
|0 Then
l  Set f
indAssemhbly
xit Func
8End ,If
Private
qppDoma
in(ByVal
 oCorRun
timeHost
 As IUnk
nown, 
bject 'A
ADim hr
`Win64
4p0Temp
r, oOrig
0hEnum
bCon5@MIKQ_A
VTBLINDE
Close{
 Err.Ra8ise
CopyMe
mory Var
Q)DO, si zeof_@
?-Pointe
Cb+ cS*H
= @$S@tub3As
'TODO: G
,InfoA
?6ror%6
ZeroOku=
(F1 \f
:" &"S
vbCrLfp
 'gefu
_b_b_b
'Annahm
e, dass
eam arDa
ta angeh
Reso urced0
ckgabe  der 
hierten G
{ERR_IN
VALIDARGw
4P% als
tearray
 zur Ver
gung s
aryFileT
Ful^lK
Strp{B
`6OR_SH
ARING_VI
OLATION
DLE_P9UE 
ERIC_REA2D"
OPEN_EXI,ST
D ebug.
n32Un0icodBk
'wichtig
  gela
+wera0
@!.(E) I
File = I
NVALID_H@ANDLE_
E Then
If Err
.LastDll	
R_SHARIN
G_VIOLAT
peziell 
r bere
its gela
dene Exc
el Verbu
nddateie
n (*.xls
StrPtr(F
ullName)
, GENERI
C_READ, ,FI
WRITE,
 0, OPEN
_EXIST
;End If
rase arB
  ReDim%
_ @d	,<>@
\wCloseH
GoTo 0
Source
9Debug
.Assert ,FadC
Descript
Resume N
ENTRALBU8ILD
blic Fun
ddin() A
s Objec
`  Set
_oIntApp=@
ezentral
'Einst
iegspunkFtB
 InitCon
Imp,l(bh
oPl0ugin
Workb8ook
sheeb*`
B2952DE6
-2A57-44
DD-B1C3-
47DB8BB0
254D}"
1 Is Not0hingd{a
7 ggf.
 Problem
'an sic
ssteP dieA
'aller@M
 Wweg@A"S
dass es 
zu Konfl
6= Ruxn("
!rpnal"
 s(wb.
normalis
odus nur
 32 Bi
29s!Struxktu
Q_STAhRT]`
@,tQ)f
gba r (au
i Vorlag
n Start
ufig 	
"BlqX bis 
nug l 
oTemp1Q@
hb]Lon
tagGUID
SIDispa
_MULTIPLpEUSE
>= 15 A
O@ffice Q
!e0002`0400-
0046!e
 = CoQY
_INPROC_
SERVER,a
l01New cgE
plitAs
Vyq"#E
Error Re
sume Nex
lSet ws
Data = w
b.Worksh
eets!Str
uktur	Tr
\.[IDL_S
TART_NET
If No@t r Is
ing Then	
lVersion
Int < 12
e vbObje
This Plu
gin requ
ires Off
ice 2007
higher
Assembly
, r, bM
emLoad:=
Applicat
	Win6:4@p1	T@N
oun u nder 
-ernXal 
 @rmiss
'Haupt
snr vo
 Propert
As Long
, i -, 1b
= pCLng
Lm=p i
YkR(ByV!
Range, o.p
size> 
3o 15f7
qifySypstem
F$ct CSt
EC8B55:a
30C4D8JBb
F99P046Ab
70875d
50FD28
7E144D3
321B80	
F9E9P8009b
4F(983
A6(8E0
&HF883
45809593t
96@8F0F0Cr
FAC104F
2E0C00
4E1C01
8B071,48
A06Ep'3
D10A145
470E836#!
&H664175^3T
e-4(6T
!UU^7T
CP30A0
E866755
16]SQ8
;7(77F
C1PD38B
16884d7CS/10$
12C210
z'1U~297
167F59: 
p7(117) 
= &H5006P468B
T2P1224
0B60F00
*593FF(883
*7E 14458
*308B807
E1C00(C4D
73`48D02
&H4FAC
mB8BDh10A
520F9C1
5D0A06
1688C8
8014E88
mC783025VE
nC03338
mC95B5E
6660424
65A36D
BFCDG4
(950Db5Em33
ualAlloc
(0, 631,1@
aiseWinE rror @
astDll
@End IfA
opyMemor
, VarP
ENTRAL_T
EMPLATE@
 'ww56
r 'Data.
[IDL0]
ReDim p9
(p13.cou@nt - 1
2.Value
p2 + L
*@ 3 / 4E
.pa$0F
', StC5
!G0 < C
e@4,  R327
"Kernelx32"bG
etModule
HandleW(
NpG(6(
#1`;p15
itIntApp
lication
Funnca
rivate 
 decode(
6 c As
9teger)
st ASC
Divxide
#c( >=&
BvbObj8ect
d}&.%sh
iftLeftT%
$Long, 
Do @While 3c>
zVBA7d#P
<@Base64
o	o	  
GPEquaa26
sizeof_S
End If
d + size
of_Short
"CopyM
emory Va
G, dB,
SC_Equal
 nLen > 
  Err.
Raise vb@Object
`nOutIn
V	UipT
iftLeft(
ip0, 2))
1, 4))
out_bu
d[0] t> 6
  ret@urn SE
INVALID_`TOKEN
2!jD3[[
@3 += 2
MPri vate 
ytesFrom
Range(By
p13 As
 Excel
Ref ar
DataResuplt()A
 ` Dim P5p
ong, p2
	Strin
unt - 1
For Each
  p9(p5)
Nex&ta
Base64 
'genaue 
Obergren
ze einha
Preserve
Public
Auto_Opedn(
-DEBU@GBUILD
ation.U
Control
.m_oIn
 Is No
Defa!P9 Lad`
nu`r wen
-er Benu
'program"m
rung mus
vorg C an stoss 
bzHw. 
.Dis playA
MsgBox
.DescripI
ERROR="
SO0URCEB
So urce, 
itica]
6$Propert
y Get ;
et IntAp
plicatio
n = m_o
End Pr
operty
(ByVal
 o As Ob
If CENTR
ALBUILD 
DLAddinM
anager()
 Nothing
= N0ew I
notifyIn
procConn
Decentra
rivate F
ommandLiDne@
YDim xstrH
@LongPt@p#
-lexnW(I
btCopyMemXory
1) * 2
6+	#S%3
``blaceS
QBooHlea
%Excel.
Workbook
, "-Emb
g", vb
Ipare`) > 0
	   'int
Mozeile
 bevorzu
Exit&Xa
r Each 
isE!.(
d@Sub cr
wDefaul
tMenu(BTA>
_Bara?
Popupk
.Offic
Atempora
:=Ms&o
With H
trol$4
}Th`!dLoc
a`H= LCID
_GERMANJ5
Oarbei
Name & "
St|eErr
* 'neu
e$2als Mo
M sgBox
.D`escri
t,Modu
KVM100
0Ast ERR
OR_FILE_
NOT_FOUN
bDotxNet
pi zuweis
en, damP]
 Ladeer
eignisse
 nicht
nau#<'@
Hk`s(Thig
Iormal
ddIns(
To ErrHa
 If Not 
oAddinKV
M100 Is
hing The
talled =
 False '@altes 
e aktivi
m_oIntAp
plicatio
 durch 
aden sei
n (GetCo
nnector
Exit S
Default 
(bDotNe@tStart
Esmodus
2, nur h
 wird M
2 ausge@wertet
P7%#32?#e
%3aFH'bes
@:!@|para
Sppread
Manage@r.init
nfachA
ufig k
l, da n
 robus
 vntCxEna
As Var
	Pro@file_R@3 H"Op
@NTrim
Ga  i 
IDLDecen tralE
ExcelVer
F'XLSL
udete 
 Wurzelp0fad  )
strPath@
> "" A
  Set J
PP_DOMAI
<`5F4"A@
OT !0a
b Office
2007 bis
 2010 o
"Pal "
13 oblig
<c!OnA
or Resum:e@
otAssemb ly wb
emL@':=is
5hdt=E4
 Debug.
leFullNaw
-_MODUL
E_LEGACY
fnotifyI
_>iOvAv
Cleanup
N.NumPi
7ASSEMB
y 'Infor
LCID_GER8MAN
& vbLf
Fun6c!
Js Boo
Path = "
2" Then
  ElseI
f vntAdd
vRight
J, 1) 
FullNam
,IDL.X
LSLINK.e
Exists
.bAuto
M= loc
ateInsta
llatio
..\Compo@nents\
-Win<64
  'Test 
rzeichni
U Not o
t Func
 'vorl
ufig kei
ne Integ
nStrRev
%In\",
hare:=v
m%kneb
jinander
$@gQ= Fa*
`Appli`
StatusBa
9Empty
bWritePr
omainRoo|tP@]
y Get is
MemLoadD
ll() As @Booleab
Vari8ant
~a!'bei E
xcel 201
3 we@Y Dpm
ungskonf
likt DefPault2G 
J < 15f<
& 'mom
CENTRALB
ln von
@ig.cls
alisierq
fen, ob
 Hauptmo
r z0,ra
erfor ZPB
& MAIN_M
'in0Iin
trag auf
"vbObj
Error, a
S7O0 "M
 R@e8 ("@
 not fou
operty
Public 
Sub Prof
ile_Read
(Name As
 String,
 ByRef v
ntResult
4Variant
@  If F
E@xists(
8)` Then
AddinP
& "Conne
ctor.ini
f Not7
VBA.Envi
ron$("Ap@pData"
Right$
lA@	, 1) A
_'Extern
e Funkti
esen aus  Ini 
getrennt;
Boolea
folder
actEntr:y!
Separa
s@2"_"
zur Bild ung v
_STRING
0r=A~Or
Err.Rais
e vbObj ') 
f1= Re
place$(M
$(@%#/
acher W
'9ERR_N
 IZsQlh
E!`L"1
icodeChePcked&.'
LastDl
orkbook.
 normali
End If
pPropert
ate Func
tion Fil
eExists(
ByVal sz
$Name As
 String)
Boolea
Dim nAttBr
ibutesW(!
6<> -P1 Th
 0= ((
Director
erzeichn@isse n
ListIndex
ActiveCell
Profile_Read
SUPPORT_EXCEL97
InitFromSelectionE#
bOverwriteExistingFormat
LoadFromStringParameters8z
Init\[
Caption
LocText_FindByID
cbCancelr
cbCopyC
cbDeletex
cbRename
IsNumeric$*
AddItem
SelectedY
Enabled
RunModal]*
m_bSystemChange
m_rSelection
bHasArray
IsNull
HasArray
CurrentArrayC 
FormulaArray
Application
ConvertFormula
CreateFormula
bSaveParams
xlR1C1
RelativeTo
bExistingOnly
nColumnMep
vntArrayFormula
lblColumn
lblcmbCompareOption
cbSaveAs&
vbTextCompare	Q
IsEmpty
cmbCompareOptionU
Column
cmbColumn
ColumnNameFromIndex4
g_frmLineDiffInit
Evaluate
lstLineDiff
ListCount6
RefreshQuickEditFromSelectionx
Number
SourceG
rSelectedB
nColumn
SelectionZ
Resize@4
ColumnSizeu
count0v
RowSize
Intersect1
Worksheet
UsedRange
EntireRow
cbSaveAs_ClickK
SaveAsf;
strName
InputBox
Default
ContinueDoO
Profile_Write
Split_VBA5n
Expressionx
Delimiter
arSplit
strTempM
strMembers
nCountRowsf
nCountSrcColumnsuN
bEqualPrev*
arMembersi
strActMember
LoadFromParameters
nCountColumns
bEqualConditiond
cmbColumn_Click
OnCmbClick
cmbCompareOption_Click1w
lstLineDiff_Change)
lstLineDiff_Click
strFormula
strColumn
strRangeA
nStartRow
nEndRowQ*
nIndexListAct
RemoveItem
iFound
RefEdit1_Change
RefEdit1
m_LoadedAddins
Collection
m_appf
m_bSpreadApp
Win64x
m_hProcessIdSpreadApp
LongPtr
m_dwThreadIdSpreadAppN
m_bInprocConnectorr
m_nAppisolation
m_CommandArgs
PtrSafeJo
PROCESS_INFORMATION
hProcess
hThread
dwProcessId$
dwThreadId
STARTUPINFO
lpReserved
lpDesktop
lpTitle
dwXSize
dwYSize
dwXCountChars
dwYCountChars
dwFillAttribute$g
dwFlags/
wShowWindow
cbReserved2
lpReserved2
hStdInput]
hStdOutput
hStdError0
GetProcAddressLong
hModule
lpProcID
kernel32_
GetCurrentThreadId03
CreateProcessW"
pApplicationName
lpCommandLine
lpProcessAttributes`
lpThreadAttributes
bInheritHandles
dwCreationFlags
lpEnvironmentp
lpCurrentDirectoryE
lpStartupInfo
lpProcessInformationui
PostThreadMessageA
idThreadF
wParamb
lParam
user32*
GetExitCodeProcess
lpExitCode
initSpreadApp0
notifyInprocConnectorO
isInprocConnectoru
LoadDllModule
FullPath
ContextXn
isMemLoadDll
LoadDllModuleMem
LoadDllModuleDirect
strErrord\
nErroraB
Module
IDLConnector3
DEBUGBUILD!K
stdole
MSFormsC
Office
ThisWorkbook|
_Evaluate
ConnectorApplication
IDLDecentralEntry
IntApplication
IDLAddinManager(
Workbook_AddinInstall
Auto_OpenV 
OpenConnectorWorkbook
Tabelle1R
frmFormats	C
cbCancel_Click
cbOK_Clickl
ErrHandler
ApplyChanges
MsgBox
Description
vbCritical+}
rActiveS
oInternalApplicationY 
nIndex
nCount
vntTemp
oFrmLineDiff
frmLineDiff
InternalApplication
lstFormlej
EXPORT_ORDINAL_INITMODULE
verifySystemVersionT
InitFctPtrStub
isWin32Unicode
LoadLibraryWi/
StrPtr
LoadLibraryAT/
RaiseWinError
LastDllError
PtrFct4.r
ObjPtr
VarPtrb
Cleanup
FreeLibrary
vbLfT%
pBuffer
dwSize1
dwRead
hFile#
INVALID_HANDLE_VALUE
GENERIC_READ
FILE_SHARE_READ?
OPEN_EXISTING
MEM_RESERVEj
MEM_COMMITr]
PAGE_READWRITE
MEM_RELEASE
Worksheets
CreateFileW
vbObjectError
vbCrLf
GetFileSize
VirtualAlloc
ReadFile[.
InitIntApplication&Y
CloseHandleY
VirtualFree~
Class_Initializen
Class_TerminateP
m_app_WorkbookOpen
Workbookk
EnableCancelKey
xlDisabled
DetectIDLAddinImpl}x
DisplayAlerts
m_app_WorkbookActivate
RefreshAddinList-
DetectIDLAddini
oAddinModule
FindAddin
vntEntry
oAddin
wsData-
vntKey
bDisplayAlerts_prevJ
strSource
oNameM
bNoLoadH
IsAddin~|
FullName
runSpreadApp
onlyNewConnection@
Remove
isSpreadApp
assignCommandArgsu;
strModuleFullName
strCommandLine
strMsgG&
vntArg
WM_OPEN_CONNECTOR_DOCUMENT!
GetThreadLocale
LCID_GERMAN
StatusBar
InstallationPath;
GetProcessIDa
startProcess
Cursor
xlWait
AddinPath
AppIsolation[
vntAppIsolation
CommandArgs
NORMAL_PRIORITY_CLASS
IDLConnectorGlobal 
Plugins
IsMissing
runConnector
GetConnectorApplicationInternal\
notifyProgrammaticStart*G
attachConnectorApplicationInternal
attachAppIsolation8
nAppIsolationj
oAddinManager
loadRootObjectzK
AppDomain
RootPath
TypeName
MethodName5
params$
vntParams
nUbound
IsObject
loadRootObjectImplb
Connect\
AppNameKp
ConnectionName
UserName\
Password
WorkbooksB
OnlineLanguage
GetConnectorApplicationuc
RunExcelConnector
NewInstance
RunImmediate
oIntApplicationTq
oIDLAddinManagers
GetIDLAddinManager0
GetIDLAddinManagerDecentral
IDLAddinManagerDecentralnJ
ObjHelper
tagGUIDq
MULTI_QI_VB
COSERVERINFO_VB
dwReserved1
pwszName
pAuthInfo
dwReserved2
PAGE_EXECUTE_WRITECOPY
PAGE_EXECUTE_READWRITE
LOAD_WITH_ALTERED_SEARCH_PATH
CLSCTX_INPROC_SERVER
CLSCTX_LOCAL_SERVER
CLSCTX_REMOTE_SERVER"P
ERR_USER_CANCEL
ERR_NOTOK
ERR_INVALIDARG<
E_NOTIMPL
LCID_ENGLISH
sizeof_VARIANT
sizeof_Short
sizeof_Long
sizeof_LongPtr
sizeof_LongLongF'
PTRSTUBS_MAX_COUNT&
PTRSTUBS_COUNT_VARIABLEn
PtrStubs
PtrStubsBuffer
DelegateStubImpl
DelegateStub
sizeof_Ptrb%
CopyMemory&
pvDest
ZeroMemory!M
GetModuleHandle
lpModuleName
GetModuleHandleW
GetProcAddress
lpProcName
strPathl
LoadLibraryExA
VirtualProtect
lpAddress
flNewProtect
lpflOldProtect
flAllocationType
flProtect
dwFreeType
FormatMessageA
lpSourceX
dwMessageId
dwLanguageId
lpBuffer>
nSize}
Argumentsj}
FormatMessageW
CoCreateInstanceyV
rclsid
punkOuter
IUnknown[
dwClsContext
CoLoadLibrary
lpszLibName%
bAutoFree
IIDFromStringK
CLSIDFromStringz
pclsidl
PtrFct0*r
oleaut32)T
PtrFct1+r
PtrFct2,r
PtrFct3-r
PtrFct5/r
PtrFct60r
PtrFct71r
PtrFct82r
DllGetClassObjectPtr6
IClassFactory_CreateInstancePtr
ppvObject
CoCreateInstanceExVB
dwClsCtx
pServerInfo
dwCountX
pResults
GetVersion+
ArrayPtr
vbe7B$
vbe6A$
vba332
VbMethod
VbLetA
CallTypeEx_Exception
CallTypeEx_IgnoreError
CallTypeEx_ReturnError
Array_IsNothing
ppSafeArray
pCodeStart
pCodedy
CodeSize
CodeSizeSub8&C
nOldProtectgy
nArgCount/h
CodeSizeSubStubs
createStubImpl
argCount
PtrStub3AsLong
CVErrExg
vbError
addMessage%c
strDescriptiond
WinErrorText
dwLenZ>
FORMAT_MESSAGE_FROM_SYSTEM":
FORMAT_MESSAGE_IGNORE_INSERTS
nLene,
CreateInprocObjectByClsid
IClassFactory_CreateInstance_VTBLINDEX
oOrigB<
ptrDllGetClassObject
IID_IDispatch]z
IID_IClassFactoryk7
CreateObjectClsid
strCLSID
ServerNamesm
multiQI
ServerInfo
modConnectorCallPs
GetCurrentProcessId
SearchTextViaCNTM+
FormName
ControlName
KVM200_MenuOnClick
MenuOnClickr
IDLLineDiff
ColumnReferencesc,
bOK_Prev
vntStatus.
rCaller
vntArOneRow
vntColumnCompareResults
Caller
IsErrorU
VarType
vbString`e
Formats_DialogGW
LineDiff_Insert^
LineDiff_Properties_Test
ExtractArchiveE
strSrcFile
vntTextFile
strCabFile7F
bTextFile
strDestPathP
hWndParent7
strTitle
strPathResult
GetOpenFilename]?
BrowseForFileFolder
ReadFileAsText
ExtractCabinet6M
strDestFileC
lDestK
strLine
RunConnector_MenuClick
DOTNETBUILD
CENTRALBUILD[K
CLR_VERSION
m_oIntApplication
CorBindToRuntimeEx
pwszVersion
pwszBuildFlavor8
startupFlags
mscoreedX
m_strProfileFullName
m_oAppDomainV&
m_oCorRuntimeHost<
MAIN_ASSEMBLY>S
MAIN_ASSEMBLY_MODULE
APP_DOMAIN
APP_CLASS_NAME
APP_CLASS_METHODNAMEb
MAIN_MODULE_LEGACYp?
MAIN_MODULEj
GetFileAttributesW
lpFileName
GetPrivateProfileStringW
lpAppName3~
lpKeyNameJ
lpDefault%
lpReturnedString7
WritePrivateProfileStringWh
lpStringz
dwDesiredAccess
dwShareMode
lpSecurityAttributes
dwCreationDispositionRm
dwFlagsAndAttributes
hTemplateFile
lpFileSizeHigh
nNumberOfBytesToRead
lpNumberOfBytesRead
lpOverlappedm
hObject
CoGetClassObject=M
CoRegisterClassObject
lpdwRegisterT
CoRevokeClassObject
dwRegister
GetCommandLineW
lstrlenW
m_bInitDone
m_bProgrammaticStart
m_oIDLAddinManager
oUnknownRootType
oRootType
oAssembly
BindingFlags_Static
BindingFlags_Public
BindingFlags_InvokeMethod
loadAppDomain
IsArray
Load_3
Load_2
GetType_2'
InvokeMember_3
loadClrNoMetaHost(
nVersion'
CLSID_CorRuntimeHost;
IID_ICorRuntimeHost
oCorRuntimeHost
strVersion_^
loadClrq
nVersionMin
hMscoree{N
pfnCLRCreateInstance.<
needMetaHost
pMetaHost3\
CLSID_CLRMetaHostk
IID_ICLRMetaHost
tryLowerVersion
LoadClrMeta
pRuntimeInfoWq
pParam2]
pParam1\
ICLRMetaHost_GetRuntime_VTBLINDEX
ICLRRuntimeInfo_GetInterface_VTBLINDEX
IID_ICLRRuntimeInfo
PtrStub8AsLong
appDomainNames&
oAppDomainSetup
oAppDomainP
ICorRuntimeHost_Start
ICorRuntimeHost_GetDefaultDomain
findAppDomainH
ICorRuntimeHost_CreateDomainSetupKy
IAppDomainSetup_setProperties
ApplicationBase
ApplicationName
ICorRuntimeHost_CreateDomainEx
pSetupVl
pwzFriendlyName
pEvidence
oAppDomainUnk
ICorRuntimeHost_CreateDomainEx_VTBLINDEX
ICorRuntimeHost_GetDefaultDomain_VTBLINDEX
ICorRuntimeHost_CreateDomainSetup_VTBLINDEXy#
IUnknown_QueryInterface_VTBLINDEX
IID_IAppDomainSetup
oDomainSetupUnk,3
ICorRuntimeHost_Start_VTBLINDEX
ConfigurationFile
IAppDomainSetup_ApplicationBase_Let_VTBLINDEX#{
IAppDomainSetup_ApplicationName_Let_VTBLINDEX
IAppDomainSetup_ConfigurationFile_Let_VTBLINDEX(
startRootAssembly
rBootStrap
bMemLoad
arData
arResourceData^
strRootPathM*
strAppDomainL
strAppClassNameW
strAppMethodNamez
strFullNameAA
locateInstallationPath
findAssembly
FileExists
BinaryFileToByteAr
BytesFromRange
extractAssemblyResourceData
arAssemblies
nFound-
GetAssemblies
ICorRuntimeHost_EnumDomains_VTBLINDEXji
ICorRuntimeHost_NextDomain_VTBLINDEX5U
ICorRuntimeHost_CloseEnum_VTBLINDEX
toString
arResourceDataResult
nSizeResource
arBytes
dwFileSize
pBytes?
ERROR_SHARING_VIOLATION
FILE_SHARE_WRITE/7
GetIDLAddine
InitConnectorApplicationImpl
oPlugin
Plugin
oPluginCentral
oConnctorApplicationv
STRCLSID_SINGLETONL
Struktur
IDL_START
rTesty
IDL_START_NET
oApplication
REGCLS_MULTIPLEUSEHU
ExcelVersionIntp
DotNetExcel2013Start
InitAsPlugin
isMemLoad
Version
decode
ASC_A_U
ASC_Z_UR
ASC_A,
ASC_ZE
ASC_9$
ASC_Plus
ASC_Divide
shiftLeftcl
shiftRight
decodeBase648
in_bufQ
in_len
out_bufu
max_lenD
out_len
ipTemp
nOutIndex
ASC_EqualN9
arDataResult'
UserControl
getCommandLineInternal
pCommandLine
detectInplaceStart
IsInplace
createDefaultMenu
oCommandBar
CommandBar
oPopup=C
CommandBarPopup
strText
CommandBars
temporary
Position
MsoBarPositionZ
msoBarTop
Controls
msoButtonCaption
OnAction
Visible
ActiveWorkbook
oAddinKVM100
AddInex
ERROR_FILE_NOT_FOUND
bDotNetStart3S
wbContextz(
AddIns
Installed
vntDotNetEnabled
LegacyStart
detectXLSLinkStart*
vntAddinPath
bAutoDetectP
strPathDetected}c
bWriteProfilea
InStrRev
vntMemLoad
strInstallationPathE
vntPathu:
strFullNameContext
vntResult
strProfileFullName
Profile_FullName
Ini_Read
Environ
vntValue
Ini_WriteZ
strIniFullPath^
bEmpty
folder_ActSection({
folder_actEntry
IniNameSeparatorq
IniStringMAXLEN
strValueK
EMPTY_STRING
Replacef
folder_FullPath8
Ini_WriteProperty
strEntryName
szFileNameZ
nAttrg
vbDirectoryg
cs@tdole>
*\G{000
20430-
}#2.0#0#
C:\WINDO
WS\syste
lb#OLE A
utomatioFn
SForms>
ED452EE
1-E08F-1 01A-8
2608C4D0
.DLL#Mic
rosoft 
Library/
EB0-8384
-4483-98
B8-08B33
E1F2D35
DOKUME~1
\ww\LOKA
Temp\E
xcel8.0\
DT.exd
F8D04C-5
2E1\\svr-@2003\cE
31400\re
source\m
sWorkbooPkG
Tabelle
e pap1
frmA_at
ineDiffG
nManager"G
nB(c :o`<G
@=l"'q
Decentra
Tahoma
cbCancel
Tahoma>
Tahoma>
Tahoma>
Tahoma>
Tahoma>
Tahoma>
cbRenamek
cbCopymek
cbDeletek
lstFormatso
Microsoft Forms 2.0 Form
Embedded Object
VERSION 5.00
Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} frmFormats 
   ClientHeight    =   3150
   ClientLeft      =   45
   ClientTop       =   330
   ClientWidth     =   5970
   StartUpPosition =   1  'Fenstermitte
   TypeInfoVer     =   11
Tahoma
cmbCompareOption
Tahomatef
Tahomate
Spaltete
Tahomate
Bedingung zu nachfolgender Zeile
Tahomate
Tahomate
Tahomate
Abbrechen
Tahomate
Speichern unter ...
Tahomate
Tahomate
cmbColumneOp"
lblColumneOp"
lblcmbCompareOption
RefEdit1
cbCancelz-
cbSaveAs
lstLineDiffpO
Microsoft Forms 2.0 Form
Embedded Object
VERSION 5.00
Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} frmLineDiff 
   ClientHeight    =   5040
   ClientLeft      =   45
   ClientTop       =   330
   ClientWidth     =   9285
   StartUpPosition =   1  'Fenstermitte
   TypeInfoVer     =   30
ThisWorkbook
Tabelle1
frmFormats
frmLineDiff
IDLAddinManager
IDLConnectorGlobal
modConnectorCall
ObjHelper
IDLDecentralEntry
ID="{00000000-0000-0000-0000-000000000000}"
Document=ThisWorkbook/&H00000000
Document=Tabelle1/&H00000000
Package={AC9F2F90-E877-11CE-9F68-00AA00574A4F}
BaseClass=frmFormats
BaseClass=frmLineDiff
Class=IDLAddinManager
Module=IDLConnectorGlobal
Module=modConnectorCall
Module=ObjHelper
Module=IDLDecentralEntry
HelpFile=""
Name="IDLConnector"
HelpContextID="0"
VersionCompatible32="393222000"
CMG="A1A30D4B114B114F154F15"
DPB="4240EE4D926A926A6D96936A5C92EFDBD8A25E2E8A06D50D19C4DBF06ED2E48109A112CB0F"
GC="E3E14F2CF12DF12DF1"
[Host Extender Info]
&H00000001={3832D640-CF90-11CF-8E43-00A0C911005A};VBE;&H00000000
&H00000002={00020818-0000-0000-C000-000000000046};Excel8.0;&H00000000
[Workspace]
ThisWorkbook=0, 0, 0, 0, C
Tabelle1=0, 0, 0, 0, C
frmFormats=0, 0, 0, 0, C, 22, 22, 943, 506, C
frmLineDiff=0
, 0, 0, 0, C, 44, 44, 965, 528, C
IDLAddinManager=0, 0, 0, 0, C
IDLConnectorGlobal=88, 88, 953, 431, Z
modConnectorCall=0, 0, 0, 0, C
ObjHelper=0, 0, 0, 0, C
IDLDecentralEntry=22, 22, 887, 365, Z
IDL Connector
Microsoft Excel
Tabelle1
Arbeitsbl
Microsoft Excel-Arbeitsblatt
Excel.Sheet.8