{"id":27058821,"url":"https://github.com/fafalone/extractzipshell","last_synced_at":"2026-01-27T13:03:12.098Z","repository":{"id":279671337,"uuid":"939568671","full_name":"fafalone/ExtractZipShell","owner":"fafalone","description":null,"archived":false,"fork":false,"pushed_at":"2025-02-27T07:50:04.000Z","size":14677,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-31T00:48:07.209Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Visual Basic 6.0","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fafalone.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-26T18:46:24.000Z","updated_at":"2025-02-27T07:50:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"e45b0eaf-4826-4a87-9ef1-333f02080adc","html_url":"https://github.com/fafalone/ExtractZipShell","commit_stats":null,"previous_names":["fafalone/extractzipshell"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fafalone/ExtractZipShell","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fafalone%2FExtractZipShell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fafalone%2FExtractZipShell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fafalone%2FExtractZipShell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fafalone%2FExtractZipShell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fafalone","download_url":"https://codeload.github.com/fafalone/ExtractZipShell/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fafalone%2FExtractZipShell/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28813227,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T12:25:15.069Z","status":"ssl_error","status_checked_at":"2026-01-27T12:25:05.297Z","response_time":168,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-05T12:17:06.345Z","updated_at":"2026-01-27T13:03:12.091Z","avatar_url":"https://github.com/fafalone.png","language":"Visual Basic 6.0","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Extract Zip Files through Windows Shell\n\nJust a code snippet that shows a simple way to unzip...\n\nThe simplified method is shorter, but the original would make it easier for you to only extract certain files.\n\nThis is the complete code, just requires enabling my \"Windows Development Library for twinBASIC\" (WinDevLib) package in References-\u003eAvailable packages.\n\nRequires Windows Vista or newer.\n\n```vba\n    Private Function ExtractByShell(pszZip As String, pszDest As String) As Long\n        If PathFileExistsW(StrPtr(pszZip)) = 0 Then\n            ExtractByShell = ERROR_FILE_NOT_FOUND\n            Exit Function\n        End If\n        If PathFileExistsW(StrPtr(pszZip)) = 0 Then\n            SHCreateDirectory 0, pszDest\n        End If\n        \n        Dim siZip As IShellItem\n        Dim siDest As IShellItem\n        Dim siChild As IShellItem\n        Dim pEnum As IEnumShellItems\n        Dim pArray As IShellItemArray\n        Dim pCopy As New FileOperation\n        Dim pidl() As LongPtr\n        Dim cPidl As Long\n        Dim pPIDL As IPersistIDList\n        Dim lRet As Long\n        lRet = SHCreateItemFromParsingName(StrPtr(pszZip), Nothing, IID_IShellItem, siZip)\n        lRet = SHCreateItemFromParsingName(StrPtr(pszDest), Nothing, IID_IShellItem, siDest)\n        If (siZip Is Nothing) Or (siDest Is Nothing) Then\n            ExtractByShell = ERROR_FILE_NOT_FOUND\n            Exit Function\n        End If\n        lRet = siZip.BindToHandler(0, BHID_EnumItems, IID_IEnumShellItems, pEnum)\n        If (pEnum Is Nothing) = False Then\n            Do While pEnum.Next(1, siChild) = S_OK\n                Set pPIDL = siChild\n                ReDim Preserve pidl(cPidl)\n                pPIDL.GetIDList pidl(cPidl)\n                cPidl = cPidl + 1\n            Loop\n            If cPidl Then\n                SHCreateShellItemArrayFromIDLists cPidl, VarPtr(pidl(0)), pArray\n                If (pArray Is Nothing) = False Then\n                    pCopy.CopyItems pArray, siDest\n                    pCopy.PerformOperations\n                    pCopy.GetAnyOperationsAborted lRet\n                End If\n                FreeIDListArray pidl, cPidl\n            End If\n        End If\n        ExtractByShell = lRet\n    End Function\n\n\n    Private Function ExtractByShellSimplfied(pszZip As String, pszDest As String) As Long\n        If PathFileExistsW(StrPtr(pszZip)) = 0 Then\n            ExtractByShellSimplfied = ERROR_FILE_NOT_FOUND\n            Exit Function\n        End If\n        If PathFileExistsW(StrPtr(pszZip)) = 0 Then\n            SHCreateDirectory 0, pszDest\n        End If\n        \n        Dim siZip As IShellItem\n        Dim siDest As IShellItem \n        Dim pEnum As IEnumShellItems\n        Dim pCopy As New FileOperation\n        Dim lRet As Long\n        lRet = SHCreateItemFromParsingName(StrPtr(pszZip), Nothing, IID_IShellItem, siZip)\n        lRet = SHCreateItemFromParsingName(StrPtr(pszDest), Nothing, IID_IShellItem, siDest)\n        If (siZip Is Nothing) Or (siDest Is Nothing) Then\n            ExtractByShellSimplfied = ERROR_FILE_NOT_FOUND\n            Exit Function\n        End If\n        lRet = siZip.BindToHandler(0, BHID_EnumItems, IID_IEnumShellItems, pEnum)\n        If (pEnum Is Nothing) = False Then\n            pCopy.CopyItems pEnum, siDest\n            pCopy.PerformOperations\n            pCopy.GetAnyOperationsAborted lRet\n        End If\n        ExtractByShellSimplfied = lRet\n    End Function\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffafalone%2Fextractzipshell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffafalone%2Fextractzipshell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffafalone%2Fextractzipshell/lists"}