[ADVAPI32/SERVICES]: Windows services (as per MSDN and testing) must always get at least one parameter -- the service name, in the argument vector. However, in ReactOS, unless optional custom parameters were sent (when starting a service), services got 0 parameters and a NULL argument vector. Since services on Windows know this is impossible, many dereference the vector without checking for NULL (including Windows Svchost.exe). Either way, it's bogus for us not ever sending the name as the first parameter. So I fixed ScBuildUnicodeArgsVector to always either pre-pend the service name (if the caller gave us some parameters already), or do use the name as the sole parameter (if the caller sent none). This now works as on Windows, and should greately help with 3rd party service compatibility.
***NOTE THAT I ONLY DID THIS FOR UNICODE. I DID NOT BOTHER TO FIX THE ANSI VERSION. ERIC KOHL, PLEASE REVIEW & FIX AS APPROPRIATE***

git-svn-id: svn://svn.reactos.org/reactos/trunk@59843 97493ccd-5924-5043-b1f5-66cb403b36ce
[IDL]: Sync Objidl with http://www.winehq.org/pipermail/wine-patches/2012-November/120299.html, which adds IGlobalOptions.

git-svn-id: svn://svn.reactos.org/reactos/trunk@59844 97493ccd-5924-5043-b1f5-66cb403b36ce
[UUID]: Add IID_IGlobalOptions and CLSID_GlobalOptions.

git-svn-id: svn://svn.reactos.org/reactos/trunk@59845 97493ccd-5924-5043-b1f5-66cb403b36ce
It wants an EOF?

git-svn-id: svn://svn.reactos.org/reactos/trunk@59846 97493ccd-5924-5043-b1f5-66cb403b36ce
[SVCHOST]: Implement a Windows-compatible (5.2 SP1) SvcHost.exe process, which can load Windows services according to the information at http://www.geoffchappell.com/studies/windows/win32/services/svchost/index.htm, using the same callbacks and registry settings, including support for RPC over NPIPE, NetBIOS and COM, with correct handling of Security, Threading, Locking and Stop Callbacks. Tested with the current BITS and DHCP services, which still work (although they don't take advantage of the new functionality).

git-svn-id: svn://svn.reactos.org/reactos/trunk@59847 97493ccd-5924-5043-b1f5-66cb403b36ce
[SVCHOST]: Use ReactOS Linux-build compatible cases in the header files, which are incompatible with Windows, and don't even matter on Windows, but hey, <3 Reactos + Linux.

git-svn-id: svn://svn.reactos.org/reactos/trunk@59848 97493ccd-5924-5043-b1f5-66cb403b36ce
[KERNEL32]
Cut a very loong DPRINT1 into pieces, to workaround the length limitation of debug strings I get.


git-svn-id: svn://svn.reactos.org/reactos/trunk@59849 97493ccd-5924-5043-b1f5-66cb403b36ce
[SVCHOST]
Fix debug prints.

git-svn-id: svn://svn.reactos.org/reactos/trunk@59850 97493ccd-5924-5043-b1f5-66cb403b36ce
[SVCHOST]
* Fix a typo.

git-svn-id: svn://svn.reactos.org/reactos/trunk@59851 97493ccd-5924-5043-b1f5-66cb403b36ce
[PSDK]
* Annotate imm.h.

git-svn-id: svn://svn.reactos.org/reactos/trunk@59852 97493ccd-5924-5043-b1f5-66cb403b36ce
[CRT]
* Annotate timeb_s.h.

git-svn-id: svn://svn.reactos.org/reactos/trunk@59853 97493ccd-5924-5043-b1f5-66cb403b36ce
[CMAKE]
* Add the proper subsystem version when using a recent MSVC toolchain.

git-svn-id: svn://svn.reactos.org/reactos/trunk@59854 97493ccd-5924-5043-b1f5-66cb403b36ce
[KERNEL32]
- Add brackets around "case XXX:" so that I'm able to (un)fold regions of code when debugging and reading.
- Temporarily skip AppCompat functionality added by Alex, in order to "fix" (read: hack-fix) launch of .bat/.cmd files. Indeed, when .bat/.cmd files get started with the CreateProcess function, a call to NtCreateSection fails with status STATUS_INVALID_IMAGE_NOT_MZ, as expected (line 2952). But the new AppCompat code (lines 3028 and 3031-3033 and following, and 3114), executed whenever the status code from NtCreateSection is STATUS_SUCCESS or STATUS_INVALID_IMAGE_NOT_MZ or something else, overwrites the status code by other values, so that, after we return to the main code path (lines 3174 and following), the status code isn't STATUS_INVALID_IMAGE_NOT_MZ anymore but STATUS_SUCCESS or whatever, and then, we fail to run the .bat/.cmd file (that should be done at lines 3314-3316 and following).
To Alex_Ionescu: Have a look at this and fix it properly!!

git-svn-id: svn://svn.reactos.org/reactos/trunk@59855 97493ccd-5924-5043-b1f5-66cb403b36ce
[RTL]: Correctly read PEB or Kernel Variables for Heap Tuning.
[NTOSKRNL]: MmCreatePeb should correctly fill out the Heap PEB parameters.
[NTOSKRNL]: MmInitSystem and mminit.c should correctly initialize and hold the Heap Tuning Parameters.
[NTOSKRNL]: CmControlVector should read the registry Heap Tuning Parameters into the real Mm variables, instaed of "Dummy".
This removes heap hacks and makes Windows NTDLL happy.

git-svn-id: svn://svn.reactos.org/reactos/trunk@59857 97493ccd-5924-5043-b1f5-66cb403b36ce
Just fix a typo.

git-svn-id: svn://svn.reactos.org/reactos/trunk@59858 97493ccd-5924-5043-b1f5-66cb403b36ce
[NDK]: Fix Vista vs Server 2003 definition of SECTION_IMAGE_INFORMATION.
[NTOSKRNL]: Gut out almost all the fields in the ReactOS-specific MM_IMAGE_SECTION, and replace them with the NT SECTION_IMAGE_INFORMATION structure instead. Make NtQuerySection simply return a copy of these fields (as on Windows).
[NTOSKRNL]: Update the PE loader code to now store information in SECTION_IMAGE_INFORMATION. Also store LoaderFlags and DllCharacteristics, which were not stored/returned to users before (in NtQuerySection).
[NTOSKRNL]: An entrypoint of NULL should also set ImageContainsCode to FALSE.
[NTOSKRNL]: Implement MmGetImageInformation, which is used by NtQueryInformationProcess(ProcessImageInformation). Also implement this latter info class.
[NTOSKRNL]: Delete ps_i.h, nobody uses this anymore.

git-svn-id: svn://svn.reactos.org/reactos/trunk@59859 97493ccd-5924-5043-b1f5-66cb403b36ce
[CMAKE/VS]
* Introduce the support for organizing the solution into a hierarchy of folders that matches our codebase layout.
* You can enable this feature by adding -DUSE_FOLDER_STRUCTURE=1 to your configure phase (the VSSolution one).
* Based on a patch by Yuntian Zhang with my improvements.
CORE-7412

git-svn-id: svn://svn.reactos.org/reactos/trunk@59860 97493ccd-5924-5043-b1f5-66cb403b36ce
[TRANSLATIONS]
* Turkish translation update and improvements by Erdem Ersoy.
CORE-7408 #resolve #comment Committed in r59861. Thanks.

git-svn-id: svn://svn.reactos.org/reactos/trunk@59861 97493ccd-5924-5043-b1f5-66cb403b36ce
[NTDLL]: Don't give every process a KernelCallbackTable. Only GUI processes need one.
[USER32]: Initialize the KernelCallbackTable when loaded in GUI process. Also, store it statically instead of requiring a heap allocation (just like Windows).

git-svn-id: svn://svn.reactos.org/reactos/trunk@59862 97493ccd-5924-5043-b1f5-66cb403b36ce
[WINHLP32]
* Improve resource files layout to make it consistent with the rest of our codebase. By Erdem Ersoy.
CORE-7414 #resolve #comment Committed in r59863. Thanks.

git-svn-id: svn://svn.reactos.org/reactos/trunk@59863 97493ccd-5924-5043-b1f5-66cb403b36ce