📄 shellord.c
字号:
/*************************************************************************
* SetAppStartingCursor [SHELL32.99]
*/
HRESULT WINAPI SetAppStartingCursor(HWND u, DWORD v)
{ FIXME("hwnd=%p 0x%04lx stub\n",u,v );
return 0;
}
/*************************************************************************
* SHLoadOLE [SHELL32.151]
*
*/
HRESULT WINAPI SHLoadOLE(LPARAM lParam)
{ FIXME("0x%04lx stub\n",lParam);
return S_OK;
}
/*************************************************************************
* DriveType [SHELL32.64]
*
*/
HRESULT WINAPI DriveType(DWORD u)
{ FIXME("0x%04lx stub\n",u);
return 0;
}
/*************************************************************************
* SHAbortInvokeCommand [SHELL32.198]
*
*/
HRESULT WINAPI SHAbortInvokeCommand(void)
{ FIXME("stub\n");
return 1;
}
/*************************************************************************
* SHOutOfMemoryMessageBox [SHELL32.126]
*
*/
int WINAPI SHOutOfMemoryMessageBox(
HWND hwndOwner,
LPCSTR lpCaption,
UINT uType)
{
FIXME("%p %s 0x%08x stub\n",hwndOwner, lpCaption, uType);
return 0;
}
/*************************************************************************
* SHFlushClipboard [SHELL32.121]
*
*/
HRESULT WINAPI SHFlushClipboard(void)
{ FIXME("stub\n");
return 1;
}
/*************************************************************************
* SHWaitForFileToOpen [SHELL32.97]
*
*/
BOOL WINAPI SHWaitForFileToOpen(
LPCITEMIDLIST pidl,
DWORD dwFlags,
DWORD dwTimeout)
{
FIXME("%p 0x%08lx 0x%08lx stub\n", pidl, dwFlags, dwTimeout);
return 0;
}
/************************************************************************
* @ [SHELL32.654]
*
* NOTES
* first parameter seems to be a pointer (same as passed to WriteCabinetState)
* second one could be a size (0x0c). The size is the same as the structure saved to
* HCU\Software\Microsoft\Windows\CurrentVersion\Explorer\CabinetState
* I'm (js) guessing: this one is just ReadCabinetState ;-)
*/
HRESULT WINAPI shell32_654 (CABINETSTATE *cs, int length)
{
TRACE("%p %d\n",cs,length);
return ReadCabinetState(cs,length);
}
/************************************************************************
* RLBuildListOfPaths [SHELL32.146]
*
* NOTES
* builds a DPA
*/
DWORD WINAPI RLBuildListOfPaths (void)
{ FIXME("stub\n");
return 0;
}
/************************************************************************
* SHValidateUNC [SHELL32.173]
*
*/
HRESULT WINAPI SHValidateUNC (DWORD x, DWORD y, DWORD z)
{
FIXME("0x%08lx 0x%08lx 0x%08lx stub\n",x,y,z);
return 0;
}
/************************************************************************
* DoEnvironmentSubstA [SHELL32.@]
*
* Replace %KEYWORD% in the str with the value of variable KEYWORD
* from environment. If it is not found the %KEYWORD% is left
* intact. If the buffer is too small, str is not modified.
*
* PARAMS
* pszString [I] '\0' terminated string with %keyword%.
* [O] '\0' terminated string with %keyword% substituted.
* cchString [I] size of str.
*
* RETURNS
* cchString length in the HIWORD;
* TRUE in LOWORD if subst was successful and FALSE in other case
*/
DWORD WINAPI DoEnvironmentSubstA(LPSTR pszString, UINT cchString)
{
LPSTR dst;
BOOL res = FALSE;
FIXME("(%s, %d) stub\n", debugstr_a(pszString), cchString);
if (pszString == NULL) /* Really return 0? */
return 0;
if ((dst = HeapAlloc(GetProcessHeap(), 0, cchString * sizeof(CHAR))))
{
DWORD num = ExpandEnvironmentStringsA(pszString, dst, cchString);
if (num && num < cchString) /* dest buffer is too small */
{
res = TRUE;
memcpy(pszString, dst, num);
}
HeapFree(GetProcessHeap(), 0, dst);
}
return MAKELONG(res,cchString); /* Always cchString? */
}
/************************************************************************
* DoEnvironmentSubstW [SHELL32.@]
*
* See DoEnvironmentSubstA.
*/
DWORD WINAPI DoEnvironmentSubstW(LPWSTR pszString, UINT cchString)
{
FIXME("(%s, %d): stub\n", debugstr_w(pszString), cchString);
return MAKELONG(FALSE,cchString);
}
/************************************************************************
* DoEnvironmentSubst [SHELL32.53]
*
* See DoEnvironmentSubstA.
*/
DWORD WINAPI DoEnvironmentSubstAW(LPVOID x, UINT y)
{
if (SHELL_OsIsUnicode())
return DoEnvironmentSubstW(x, y);
return DoEnvironmentSubstA(x, y);
}
/*************************************************************************
* @ [SHELL32.243]
*
* Win98+ by-ordinal routine. In Win98 this routine returns zero and
* does nothing else. Possibly this does something in NT or SHELL32 5.0?
*
*/
BOOL WINAPI shell32_243(DWORD a, DWORD b)
{
return FALSE;
}
/*************************************************************************
* @ [SHELL32.714]
*/
DWORD WINAPI SHELL32_714(LPVOID x)
{
FIXME("(%s)stub\n", debugstr_w(x));
return 0;
}
/*************************************************************************
* SHAddFromPropSheetExtArray [SHELL32.167]
*/
DWORD WINAPI SHAddFromPropSheetExtArray(DWORD a, DWORD b, DWORD c)
{
FIXME("(%08lx,%08lx,%08lx)stub\n", a, b, c);
return 0;
}
/*************************************************************************
* SHCreatePropSheetExtArray [SHELL32.168]
*/
DWORD WINAPI SHCreatePropSheetExtArray(DWORD a, LPCSTR b, DWORD c)
{
FIXME("(%08lx,%s,%08lx)stub\n", a, debugstr_a(b), c);
return 0;
}
/*************************************************************************
* SHReplaceFromPropSheetExtArray [SHELL32.170]
*/
DWORD WINAPI SHReplaceFromPropSheetExtArray(DWORD a, DWORD b, DWORD c, DWORD d)
{
FIXME("(%08lx,%08lx,%08lx,%08lx)stub\n", a, b, c, d);
return 0;
}
/*************************************************************************
* SHDestroyPropSheetExtArray [SHELL32.169]
*/
DWORD WINAPI SHDestroyPropSheetExtArray(DWORD a)
{
FIXME("(%08lx)stub\n", a);
return 0;
}
/*************************************************************************
* CIDLData_CreateFromIDArray [SHELL32.83]
*
* Create IDataObject from PIDLs??
*/
HRESULT WINAPI CIDLData_CreateFromIDArray(
LPCITEMIDLIST pidlFolder,
DWORD cpidlFiles,
LPCITEMIDLIST *lppidlFiles,
LPDATAOBJECT *ppdataObject)
{
UINT i;
HWND hwnd = 0; /*FIXME: who should be hwnd of owner? set to desktop */
TRACE("(%p, %ld, %p, %p)\n", pidlFolder, cpidlFiles, lppidlFiles, ppdataObject);
if (TRACE_ON(pidl))
{
pdump (pidlFolder);
for (i=0; i<cpidlFiles; i++) pdump (lppidlFiles[i]);
}
*ppdataObject = IDataObject_Constructor( hwnd, pidlFolder,
lppidlFiles, cpidlFiles);
if (*ppdataObject) return S_OK;
return E_OUTOFMEMORY;
}
/*************************************************************************
* SHCreateStdEnumFmtEtc [SHELL32.74]
*
* NOTES
*
*/
HRESULT WINAPI SHCreateStdEnumFmtEtc(
DWORD cFormats,
const FORMATETC *lpFormats,
LPENUMFORMATETC *ppenumFormatetc)
{
IEnumFORMATETC *pef;
HRESULT hRes;
TRACE("cf=%ld fe=%p pef=%p\n", cFormats, lpFormats, ppenumFormatetc);
pef = IEnumFORMATETC_Constructor(cFormats, lpFormats);
if (!pef)
return E_OUTOFMEMORY;
IEnumFORMATETC_AddRef(pef);
hRes = IEnumFORMATETC_QueryInterface(pef, &IID_IEnumFORMATETC, (LPVOID*)ppenumFormatetc);
IEnumFORMATETC_Release(pef);
return hRes;
}
/*************************************************************************
* SHELL32_256 (SHELL32.256)
*/
HRESULT WINAPI SHELL32_256(LPDWORD lpdw0, LPDWORD lpdw1)
{
HRESULT ret = S_OK;
FIXME("stub %p 0x%08lx %p\n", lpdw0, lpdw0 ? *lpdw0 : 0, lpdw1);
if (!lpdw0 || *lpdw0 != 0x10)
ret = E_INVALIDARG;
else
{
LPVOID lpdata = 0;/*LocalAlloc(LMEM_ZEROINIT, 0x4E4);*/
if (!lpdata)
ret = E_OUTOFMEMORY;
else
{
/* Initialize and return unknown lpdata structure */
}
}
return ret;
}
/*************************************************************************
* SHFindFiles (SHELL32.90)
*/
BOOL WINAPI SHFindFiles( LPCITEMIDLIST pidlFolder, LPCITEMIDLIST pidlSaveFile )
{
FIXME("%p %p\n", pidlFolder, pidlSaveFile );
return FALSE;
}
/*************************************************************************
* SHUpdateImageW (SHELL32.192)
*
* Notifies the shell that an icon in the system image list has been changed.
*
* PARAMS
* pszHashItem [I] Path to file that contains the icon.
* iIndex [I] Zero-based index of the icon in the file.
* uFlags [I] Flags determining the icon attributes. See notes.
* iImageIndex [I] Index of the icon in the system image list.
*
* RETURNS
* Nothing
*
* NOTES
* uFlags can be one or more of the following flags:
* GIL_NOTFILENAME - pszHashItem is not a file name.
* GIL_SIMULATEDOC - Create a document icon using the specified icon.
*/
void WINAPI SHUpdateImageW(LPCWSTR pszHashItem, int iIndex, UINT uFlags, int iImageIndex)
{
FIXME("%s, %d, 0x%x, %d - stub\n", debugstr_w(pszHashItem), iIndex, uFlags, iImageIndex);
}
/*************************************************************************
* SHUpdateImageA (SHELL32.191)
*
* See SHUpdateImageW.
*/
VOID WINAPI SHUpdateImageA(LPCSTR pszHashItem, INT iIndex, UINT uFlags, INT iImageIndex)
{
FIXME("%s, %d, 0x%x, %d - stub\n", debugstr_a(pszHashItem), iIndex, uFlags, iImageIndex);
}
INT WINAPI SHHandleUpdateImage(LPCITEMIDLIST pidlExtra)
{
FIXME("%p - stub\n", pidlExtra);
return -1;
}
BOOL WINAPI SHObjectProperties(HWND hwnd, DWORD dwType, LPCWSTR szObject, LPCWSTR szPage)
{
FIXME("%p, 0x%08lx, %s, %s - stub\n", hwnd, dwType, debugstr_w(szObject), debugstr_w(szPage));
MessageBox (NULL, TEXT("SHObjectProperties-WINAPI:\n\nTODO: Add the function code."), TEXT("SHObjectProperties; Dev: frik85"), 0);
return TRUE;
}
BOOL WINAPI SHGetNewLinkInfoA(LPCSTR pszLinkTo, LPCSTR pszDir, LPSTR pszName, BOOL *pfMustCopy,
UINT uFlags)
{
FIXME("%s, %s, %p, %p, 0x%08x - stub\n", debugstr_a(pszLinkTo), debugstr_a(pszDir),
pszName, pfMustCopy, uFlags);
return FALSE;
}
BOOL WINAPI SHGetNewLinkInfoW(LPCWSTR pszLinkTo, LPCWSTR pszDir, LPWSTR pszName, BOOL *pfMustCopy,
UINT uFlags)
{
FIXME("%s, %s, %p, %p, 0x%08x - stub\n", debugstr_w(pszLinkTo), debugstr_w(pszDir),
pszName, pfMustCopy, uFlags);
return FALSE;
}
HRESULT WINAPI SHStartNetConnectionDialog(HWND hwnd, LPCSTR pszRemoteName, DWORD dwType)
{
FIXME("%p, %s, 0x%08lx - stub\n", hwnd, debugstr_a(pszRemoteName), dwType);
return S_OK;
}
HRESULT WINAPI SHEmptyRecycleBinA(HWND hwnd, LPCSTR pszRootPath, DWORD dwFlags)
{
FIXME("%p, %s, 0x%08lx - stub\n", hwnd, debugstr_a(pszRootPath), dwFlags);
return S_OK;
}
HRESULT WINAPI SHEmptyRecycleBinW(HWND hwnd, LPCWSTR pszRootPath, DWORD dwFlags)
{
FIXME("%p, %s, 0x%08lx - stub\n", hwnd, debugstr_w(pszRootPath), dwFlags);
return S_OK;
}
DWORD WINAPI SHFormatDrive(HWND hwnd, UINT drive, UINT fmtID, UINT options)
{
FIXME("%p, 0x%08x, 0x%08x, 0x%08x - stub\n", hwnd, drive, fmtID, options);
return SHFMT_NOFORMAT;
}
HRESULT WINAPI SHQueryRecycleBinA(LPCSTR pszRootPath, LPSHQUERYRBINFO pSHQueryRBInfo)
{
FIXME("%s, %p - stub\n", debugstr_a(pszRootPath), pSHQueryRBInfo);
pSHQueryRBInfo->i64Size = 0;
pSHQueryRBInfo->i64NumItems = 0;
return S_OK;
}
HRESULT WINAPI SHQueryRecycleBinW(LPCWSTR pszRootPath, LPSHQUERYRBINFO pSHQueryRBInfo)
{
FIXME("%s, %p - stub\n", debugstr_w(pszRootPath), pSHQueryRBInfo);
pSHQueryRBInfo->i64Size = 0;
pSHQueryRBInfo->i64NumItems = 0;
return S_OK;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -