コード例 #1
0
// ******************************************************************
// Local Functions 
// ******************************************************************
static LONG findDrvPath (char *clsidstr,char *dllpath,int dllpathsize)
{
	HKEY			hkEnum,hksub,hkpath;
	char			databuf[512],extraBuf[512];
	LONG 			cr,rc = -1;
	DWORD			datatype,datasize;
	DWORD			index;
	OFSTRUCT		ofs;
	HFILE			hfile;
	BOOL			found = FALSE;

	CharLowerBuffA(clsidstr,(DWORD)strlen(clsidstr));
	if ((cr = RegOpenKeyA(HKEY_CLASSES_ROOT,COM_CLSID,&hkEnum)) == ERROR_SUCCESS) {

		index = 0;
		while (cr == ERROR_SUCCESS && !found) {
			cr = RegEnumKey(hkEnum,index++,(LPTSTR)databuf,512);
			if (cr == ERROR_SUCCESS) {
				CharLowerBuffA(databuf,(DWORD)strlen(databuf));
        //MultiByteToWideChar(CP_ACP,0,(LPCSTR)databuf,-1,(LPWSTR)wData,100);
        WideCharToMultiByte(CP_ACP,0,(LPCWSTR)databuf,-1,extraBuf,100,NULL,NULL);
 				CharLowerBuffA(extraBuf,(DWORD)strlen(extraBuf));
				if (!(strcmp(extraBuf,clsidstr))) {
					if ((cr = RegOpenKeyEx(hkEnum,(LPCTSTR)databuf,0,KEY_READ,&hksub)) == ERROR_SUCCESS) {
						if ((cr = RegOpenKeyExA(hksub,INPROC_SERVER,0,KEY_READ,&hkpath)) == ERROR_SUCCESS) {
							datatype = REG_SZ; datasize = (DWORD)dllpathsize;
							cr = RegQueryValueEx(hkpath,0,0,&datatype,(LPBYTE)dllpath,&datasize);
							if (cr == ERROR_SUCCESS) {
								memset(&ofs,0,sizeof(OFSTRUCT));
								ofs.cBytes = sizeof(OFSTRUCT); 
								hfile = OpenFile(dllpath,&ofs,OF_EXIST);
								if (hfile) rc = 0; 
							}
							RegCloseKey(hkpath);
						}
						RegCloseKey(hksub);
					}
					found = TRUE;	// break out 
				}
			}
		}				
		RegCloseKey(hkEnum);
	}
	return rc;
}
コード例 #2
0
ファイル: lstr.c プロジェクト: howard5888/wineT
/***********************************************************************
 *           CharLowerA   (USER32.@)
 */
LPSTR WINAPI CharLowerA(LPSTR str)
{
    if (!HIWORD(str))
    {
        char ch = LOWORD(str);
        CharLowerBuffA( &ch, 1 );
        return (LPSTR)(UINT_PTR)(BYTE)ch;
    }

    __TRY
    {
        CharLowerBuffA( str, strlen(str) );
    }
    __EXCEPT_PAGE_FAULT
    {
        SetLastError( ERROR_INVALID_PARAMETER );
        return NULL;
    }
    __ENDTRY
    return str;
}
コード例 #3
0
ファイル: text.c プロジェクト: RPG-7/reactos
/*
 * @implemented
 */
LPSTR
WINAPI
CharLowerA(LPSTR str)
{
    if (!HIWORD(str))
    {
        char ch = LOWORD(str);
        CharLowerBuffA( &ch, 1 );
        return (LPSTR)(UINT_PTR)(BYTE)ch;
    }

    _SEH2_TRY
    {
        CharLowerBuffA( str, strlen(str) );
    }
    _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
    {
        SetLastError( ERROR_INVALID_PARAMETER );
        _SEH2_YIELD(return NULL);
    }
    _SEH2_END;

    return str;
}
コード例 #4
0
ファイル: yb_uninstall.cpp プロジェクト: 510908220/setup
UniqueApp::UniqueApp() : m_hMutex(NULL)
{
  strcpy(m_szKey, LOCAL_PREFIX);
  size_t uPrefixLen = strlen(LOCAL_PREFIX);
  char* szExecPath = m_szKey + uPrefixLen;
  GetModuleFileNameA(NULL, szExecPath, sizeof(m_szKey) - uPrefixLen);
  char* pChar = szExecPath;
  while (*pChar)
  {
    if (*pChar == '\\')
      *pChar = '/';
    pChar++;
  }
  CharLowerBuffA(szExecPath, strlen(szExecPath));
}
コード例 #5
0
ファイル: tsstrs.cpp プロジェクト: kjradv/Isotoxin
void  str_wrap_text_lowercase(char *out, aint maxlen)
{
	CharLowerBuffA(out, maxlen);
}
コード例 #6
0
ファイル: strings.cpp プロジェクト: devgopher/Isotoxin
void  str_wrap_text_lowercase(char *out, ZSTRINGS_SIGNED maxlen)
{
	CharLowerBuffA(out, maxlen);
}