diff --git a/extra/windows/shell32/shell32.factor b/extra/windows/shell32/shell32.factor
index a6599df637..98ad6b0bd9 100644
--- a/extra/windows/shell32/shell32.factor
+++ b/extra/windows/shell32/shell32.factor
@@ -67,13 +67,27 @@ IN: windows.shell32
 : CSIDL_FLAG_CREATE HEX: 8000 ; inline
 : CSIDL_FLAG_MASK HEX: ff00 ; inline
 
+: SW_HIDE            0 ; inline
+: SW_SHOWNORMAL      1 ; inline
+: SW_NORMAL          1 ; inline
+: SW_SHOWMINIMIZED   2 ; inline
+: SW_SHOWMAXIMIZED   3 ; inline
+: SW_MAXIMIZE        3 ; inline
+: SW_SHOWNOACTIVATE  4 ; inline
+: SW_SHOW            5 ; inline
+: SW_MINIMIZE        6 ; inline
+: SW_SHOWMINNOACTIVE 7 ; inline
+: SW_SHOWNA          8 ; inline
+: SW_RESTORE         9 ; inline
+: SW_SHOWDEFAULT     10 ; inline
+: SW_MAX          10 ; inline
+
 : S_OK 0 ; inline
 : S_FALSE 1 ; inline
 : E_FAIL HEX: 80004005 ; inline
 : E_INVALIDARG HEX: 80070057 ; inline
 : ERROR_FILE_NOT_FOUND 2 ; inline
 
-
 : SHGFP_TYPE_CURRENT 0 ; inline
 : SHGFP_TYPE_DEFAULT 1 ; inline
 
@@ -83,6 +97,11 @@ TYPEDEF: void* PIDLIST_ABSOLUTE
 FUNCTION: HRESULT SHGetFolderPathW ( HWND hwndOwner, int nFolder, HANDLE hToken, DWORD dwReserved, LPTSTR pszPath ) ;
 ! SHGetSpecialFolderLocation
 ! SHGetSpecialFolderPath
+FUNCTION: HINSTANCE ShellExecuteW ( HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFile, LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd ) ;
+: ShellExecute ShellExecuteW ; inline
+
+: open-in-explorer ( dir -- )
+    f "open" rot f f SW_SHOWNORMAL ShellExecute drop ;
 
 : SHGetFolderPath SHGetFolderPathW ; inline