SetWindowTheme (uxtheme)
Last changed: -80.144.3.73

.
Summary
Causes a window to use a different set of visual style information than its class normally uses.

C# Signature:

[DllImport("uxtheme.dll", ExactSpelling=true, CharSet=CharSet.Unicode)]
public static extern int SetWindowTheme(IntPtr hWnd, String pszSubAppName, String pszSubIdList);

[DllImport("uxtheme.dll", ExactSpelling=true, CharSet=CharSet.Unicode)]
public static extern int SetWindowTheme(IntPtr hWnd, int pszSubAppName, String pszSubIdList);

[DllImport("uxtheme.dll", ExactSpelling=true, CharSet=CharSet.Unicode)]
public static extern int SetWindowTheme(IntPtr hWnd, String pszSubAppName, int pszSubIdList);

[DllImport("uxtheme.dll", ExactSpelling=true, CharSet=CharSet.Unicode)]
public static extern int SetWindowTheme(IntPtr hWnd, int pszSubAppName, int pszSubIdList);

VB .NET Signature:

Public Declare Unicode Function SetWindowTheme Lib "uxtheme.dll" (ByVal hWnd As HandleRef, ByVal pszSubAppName As String, ByVal pszSubIdList As String) As Integer

<DllImport("uxtheme.dll", ExactSpelling := True, CharSet := CharSet.Unicode)> _
Public Shared Function SetWindowTheme(hWnd As IntPtr, pszSubAppName As [String], pszSubIdList As [String]) As Integer
End Function

<DllImport("uxtheme.dll", ExactSpelling := True, CharSet := CharSet.Unicode)> _
Public Shared Function SetWindowTheme(hWnd As IntPtr, pszSubAppName As Integer, pszSubIdList As [String]) As Integer
End Function

<DllImport("uxtheme.dll", ExactSpelling := True, CharSet := CharSet.Unicode)> _
Public Shared Function SetWindowTheme(hWnd As IntPtr, pszSubAppName As [String], pszSubIdList As Integer) As Integer
End Function

<DllImport("uxtheme.dll", ExactSpelling := True, CharSet := CharSet.Unicode)> _
Public Shared Function SetWindowTheme(hWnd As IntPtr, pszSubAppName As Integer, pszSubIdList As Integer) As Integer
End Function

User-Defined Types:

None.

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

using System.Runtime.InteropServices;
...
public class MyForm : System.Windows.Forms.Form
...
[DllImport("uxtheme", ExactSpelling=true, CharSet=CharSet.Unicode)]
public extern static Int32 SetWindowTheme(IntPtr hWnd, String textSubAppName, String textSubIdList);
...
public MyForm()
{                    
SetWindowTheme(this.AnyControl.Handle,"","");
}

Alternative Managed API:

TODO

Documentation