static HRESULT String_toUpperCase(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r) { jsstr_t *str; HRESULT hres; TRACE("\n"); hres = get_string_val(ctx, jsthis, &str); if(FAILED(hres)) return hres; if(r) { jsstr_t *ret; WCHAR *buf; buf = jsstr_alloc_buf(jsstr_length(str), &ret); if(!buf) { jsstr_release(str); return E_OUTOFMEMORY; } jsstr_flush(str, buf); struprW(buf); *r = jsval_string(ret); } jsstr_release(str); return S_OK; }
/* * @implemented */ LPWSTR WINAPI CharUpperW(LPWSTR x) { if (HIWORD(x)) return struprW(x); else return (LPWSTR)((UINT_PTR)toupperW(LOWORD(x))); }
int reg_export(int argc, WCHAR *argv[]) { HKEY root, hkey; WCHAR *path, *long_key; BOOL overwrite_file = FALSE; HANDLE hFile; int ret; if (argc == 3 || argc > 5) goto error; if (!parse_registry_key(argv[2], &root, &path, &long_key)) return 1; if (argc == 5 && !(overwrite_file = is_overwrite_switch(argv[4]))) goto error; if (RegOpenKeyExW(root, path, 0, KEY_READ, &hkey)) { output_message(STRING_INVALID_KEY); return 1; } hFile = get_file_handle(argv[3], overwrite_file); export_file_header(hFile); ret = export_registry_data(hFile, hkey, long_key); export_newline(hFile); CloseHandle(hFile); RegCloseKey(hkey); return ret; error: output_message(STRING_INVALID_SYNTAX); output_message(STRING_FUNC_HELP, struprW(argv[1])); return 1; }
NTSTATUS HID_LinkDevice(DEVICE_OBJECT *device, LPCWSTR serial, LPCWSTR index) { WCHAR regname[255]; WCHAR dev_link[255]; SP_DEVINFO_DATA Data; UNICODE_STRING nameW, linkW; NTSTATUS status; HDEVINFO devinfo; GUID hidGuid; BASE_DEVICE_EXTENSION *ext; HidD_GetHidGuid(&hidGuid); ext = device->DeviceExtension; sprintfW(dev_link, device_link_fmtW, ext->information.VendorID, ext->information.ProductID, index, ext->information.VersionNumber, serial, class_guid); struprW(dev_link); RtlInitUnicodeString( &nameW, ext->device_name); RtlInitUnicodeString( &linkW, dev_link ); TRACE("Create link %s\n", debugstr_w(dev_link)); ext->link_name = HeapAlloc(GetProcessHeap(), 0, sizeof(WCHAR) * (lstrlenW(dev_link) + 1)); lstrcpyW(ext->link_name, dev_link); status = IoCreateSymbolicLink( &linkW, &nameW ); if (status) { FIXME( "failed to create link error %x\n", status ); return status; } sprintfW(regname, device_regname_fmtW, ext->information.VendorID, ext->information.ProductID, index, ext->information.VersionNumber, serial); devinfo = SetupDiGetClassDevsW(&GUID_DEVCLASS_HIDCLASS, NULL, NULL, DIGCF_DEVICEINTERFACE); if (!devinfo) { FIXME( "failed to get ClassDevs %x\n", GetLastError()); return GetLastError(); } Data.cbSize = sizeof(Data); if (!SetupDiCreateDeviceInfoW(devinfo, regname, &GUID_DEVCLASS_HIDCLASS, NULL, NULL, DICD_INHERIT_CLASSDRVS, &Data)) { if (GetLastError() == ERROR_DEVINST_ALREADY_EXISTS) { SetupDiDestroyDeviceInfoList(devinfo); return ERROR_SUCCESS; } FIXME( "failed to Create Device Info %x\n", GetLastError()); return GetLastError(); } if (!SetupDiRegisterDeviceInfo( devinfo, &Data, 0, NULL, NULL, NULL )) { FIXME( "failed to Register Device Info %x\n", GetLastError()); return GetLastError(); } if (!SetupDiCreateDeviceInterfaceW( devinfo, &Data, &hidGuid, NULL, 0, NULL)) { FIXME( "failed to Create Device Interface %x\n", GetLastError()); return GetLastError(); } SetupDiDestroyDeviceInfoList(devinfo); return S_OK; }
/********************************************************************* * _wcsupr (NTDLL.@) */ LPWSTR __cdecl NTDLL__wcsupr( LPWSTR str ) { return struprW( str ); }