1c2c66affSColin Finck /* 2c2c66affSColin Finck * ReactOS kernel 3c2c66affSColin Finck * Copyright (C) 2004 ReactOS Team 4c2c66affSColin Finck * 5c2c66affSColin Finck * This program is free software; you can redistribute it and/or modify 6c2c66affSColin Finck * it under the terms of the GNU General Public License as published by 7c2c66affSColin Finck * the Free Software Foundation; either version 2 of the License, or 8c2c66affSColin Finck * (at your option) any later version. 9c2c66affSColin Finck * 10c2c66affSColin Finck * This program is distributed in the hope that it will be useful, 11c2c66affSColin Finck * but WITHOUT ANY WARRANTY; without even the implied warranty of 12c2c66affSColin Finck * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13c2c66affSColin Finck * GNU General Public License for more details. 14c2c66affSColin Finck * 15c2c66affSColin Finck * You should have received a copy of the GNU General Public License along 16c2c66affSColin Finck * with this program; if not, write to the Free Software Foundation, Inc., 17c2c66affSColin Finck * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18c2c66affSColin Finck */ 19c2c66affSColin Finck /* 20c2c66affSColin Finck * COPYRIGHT: See COPYING in the top level directory 21c2c66affSColin Finck * PROJECT: ReactOS system libraries 22c2c66affSColin Finck * FILE: dll/win32/userenv/internal.h 23c2c66affSColin Finck * PURPOSE: internal stuff 24c2c66affSColin Finck * PROGRAMMER: Eric Kohl 25c2c66affSColin Finck */ 26c2c66affSColin Finck 27c2c66affSColin Finck #ifndef _INTERNAL_H 28c2c66affSColin Finck #define _INTERNAL_H 29c2c66affSColin Finck 30c2c66affSColin Finck /* directory.c */ 31c2c66affSColin Finck BOOL 32c2c66affSColin Finck CopyDirectory(LPCWSTR lpDestinationPath, 33c2c66affSColin Finck LPCWSTR lpSourcePath); 34c2c66affSColin Finck 35c2c66affSColin Finck BOOL 36c2c66affSColin Finck CreateDirectoryPath(LPCWSTR lpPathName, 37c2c66affSColin Finck LPSECURITY_ATTRIBUTES lpSecurityAttributes); 38c2c66affSColin Finck 39c2c66affSColin Finck BOOL 40c2c66affSColin Finck RemoveDirectoryPath(LPCWSTR lpPathName); 41c2c66affSColin Finck 42c2c66affSColin Finck /* misc.c */ 43*0f21a8a6SEric Kohl 44*0f21a8a6SEric Kohl extern SID_IDENTIFIER_AUTHORITY LocalSystemAuthority; 45*0f21a8a6SEric Kohl extern SID_IDENTIFIER_AUTHORITY WorldAuthority; 46*0f21a8a6SEric Kohl 47c2c66affSColin Finck typedef struct _DYN_FUNCS 48c2c66affSColin Finck { 49c2c66affSColin Finck HMODULE hModule; 50c2c66affSColin Finck union 51c2c66affSColin Finck { 52c2c66affSColin Finck PVOID foo; 53c2c66affSColin Finck struct 54c2c66affSColin Finck { 55c2c66affSColin Finck HRESULT (WINAPI *CoInitialize)(LPVOID pvReserved); 56c2c66affSColin Finck HRESULT (WINAPI *CoCreateInstance)(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID riid, LPVOID * ppv); 57c2c66affSColin Finck HRESULT (WINAPI *CoUninitialize)(VOID); 58c2c66affSColin Finck }; 59c2c66affSColin Finck } fn; 60c2c66affSColin Finck } DYN_FUNCS, *PDYN_FUNCS; 61c2c66affSColin Finck 62c2c66affSColin Finck typedef struct _DYN_MODULE 63c2c66affSColin Finck { 64c2c66affSColin Finck LPWSTR Library; /* dll file name */ 65c2c66affSColin Finck LPSTR Functions[]; /* function names */ 66c2c66affSColin Finck } DYN_MODULE, *PDYN_MODULE; 67c2c66affSColin Finck 68c2c66affSColin Finck extern DYN_MODULE DynOle32; 69c2c66affSColin Finck 70c2c66affSColin Finck BOOL 71c2c66affSColin Finck LoadDynamicImports(PDYN_MODULE Module, 72c2c66affSColin Finck PDYN_FUNCS DynFuncs); 73c2c66affSColin Finck 74c2c66affSColin Finck VOID 75c2c66affSColin Finck UnloadDynamicImports(PDYN_FUNCS DynFuncs); 76c2c66affSColin Finck 77c2c66affSColin Finck LPWSTR 78c2c66affSColin Finck AppendBackslash(LPWSTR String); 79c2c66affSColin Finck 80c2c66affSColin Finck PSECURITY_DESCRIPTOR 81c2c66affSColin Finck CreateDefaultSecurityDescriptor(VOID); 82c2c66affSColin Finck 83c2c66affSColin Finck /* profile.c */ 84c2c66affSColin Finck BOOL 85c2c66affSColin Finck AppendSystemPostfix(LPWSTR lpName, 86c2c66affSColin Finck DWORD dwMaxLength); 87c2c66affSColin Finck 88c2c66affSColin Finck /* registry.c */ 89c2c66affSColin Finck BOOL 90c2c66affSColin Finck CreateUserHive(LPCWSTR lpKeyName, 91c2c66affSColin Finck LPCWSTR lpProfilePath); 92c2c66affSColin Finck 93c2c66affSColin Finck /* setup.c */ 94c2c66affSColin Finck BOOL 95c2c66affSColin Finck UpdateUsersShellFolderSettings(LPCWSTR lpUserProfilePath, 96c2c66affSColin Finck HKEY hUserKey); 97c2c66affSColin Finck 98c2c66affSColin Finck /* sid.c */ 99c2c66affSColin Finck BOOL 100c2c66affSColin Finck GetUserSidStringFromToken(HANDLE hToken, 101c2c66affSColin Finck PUNICODE_STRING SidString); 102c2c66affSColin Finck 103c2c66affSColin Finck /* userenv.c */ 104c2c66affSColin Finck extern HINSTANCE hInstance; 105c2c66affSColin Finck 106c2c66affSColin Finck /* gpolicy.c */ 107c2c66affSColin Finck 108c2c66affSColin Finck VOID 109c2c66affSColin Finck InitializeGPNotifications(VOID); 110c2c66affSColin Finck 111c2c66affSColin Finck VOID 112c2c66affSColin Finck UninitializeGPNotifications(VOID); 113c2c66affSColin Finck 114c2c66affSColin Finck #endif /* _INTERNAL_H */ 115