[mono/monodevelop] [2 commits] ff079bac: [Cleanup] Try and streamline most DllImports by using shared lib names.

"Lluis Sanchez ([email protected])" <[email protected]> Tue, 12 Nov 2013 14:37:14 +0000
Newsgroups gmane.comp.gnome.mono.patches
Message-ID <000001424cbeaf7f-84eaecdf-efdd-4316-8364-2a33f53678ee-000000@email.amazonses.com>
   Branch: refs/heads/master
     Home: https://github.com/mono/monodevelop
  Compare: https://github.com/mono/monodevelop/compare/c1bb9c711c1d...459bb278e5ea

   Commit: ff079bacf7789afa724cebc98ae42a74c1821cbe
   Author: Therzok <[email protected]> (Therzok)
     Date: 2013-11-12 12:16:55 GMT
      URL: https://github.com/mono/monodevelop/commit/ff079bacf7789afa724cebc98ae42a74c1821cbe

[Cleanup] Try and streamline most DllImports by using shared lib names.

Changed paths:
  M main/src/addins/MacPlatform/MacInterop/GtkQuartz.cs
  M main/src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.Editor/GtkSpell.cs
  M main/src/addins/MonoDevelop.GtkCore/libstetic/GladeUtils.cs
  M main/src/addins/MonoDevelop.GtkCore/libstetic/ParamSpec.cs
  M main/src/addins/MonoDevelop.GtkCore/libsteticui/Metacity/Preview.cs
  M main/src/addins/MonoDevelop.GtkCore/libsteticui/Windows/WindowsTheme.cs
  M main/src/addins/WindowsPlatform/GdkWin32.cs
  M main/src/addins/WindowsPlatform/RecentFiles.cs
  M main/src/addins/WindowsPlatform/Win32.cs
  M main/src/addins/WindowsPlatform/WindowsPlatform.cs
  M main/src/addins/WindowsPlatform/WindowsProxyCredentialProvider.cs
  M main/src/addins/WindowsPlatform/WindowsSecureStoragePasswordProvider.cs
  M main/src/core/Mono.Texteditor/Mono.TextEditor/Gui/GtkWorkarounds.cs
  M main/src/core/Mono.Texteditor/Mono.TextEditor/Gui/PangoUtil.cs
  M main/src/core/Mono.Texteditor/Mono.TextEditor/HelperMethods.cs
  M main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ProcessExtensions.cs
  M main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Text/TextFile.cs
  M main/src/core/MonoDevelop.Ide/MonoDevelop.Components/CairoExtensions.cs
  M main/src/core/MonoDevelop.Ide/MonoDevelop.Components/PangoCairoHelper.cs
  M main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/GLibLogging.cs
  M main/src/tools/mdmonitor/MacIntegration/MacIntegration.cs

Modified: main/src/addins/MacPlatform/MacInterop/GtkQuartz.cs
===================================================================
@@ -34,6 +34,8 @@ namespace MonoDevelop.MacInterop
 {
 	public static class GtkQuartz
 	{
+		const string LIBQUARTZ = "libgtk-quartz-2.0.dylib";
+
 		//this may be needed to work around focusing issues in GTK/Cocoa interop
 		public static void FocusWindow (Gtk.Window widget)
 		{
@@ -79,10 +81,10 @@ public static NSView GetView (Gtk.Widget widget)
 			return MonoMac.ObjCRuntime.Runtime.GetNSObject (ptr) as NSView;
 		}
 		
-		[DllImport ("libgtk-quartz-2.0.dylib")]
+		[DllImport (LIBQUARTZ)]
 		static extern IntPtr gdk_quartz_window_get_nsview (IntPtr window);
 		
-		[DllImport ("libgtk-quartz-2.0.dylib")]
+		[DllImport (LIBQUARTZ)]
 		static extern IntPtr gdk_quartz_window_get_nswindow (IntPtr window);
 	}
 }

Modified: main/src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.Editor/GtkSpell.cs
===================================================================
@@ -36,22 +36,23 @@ namespace MonoDevelop.Gettext.Editor
 	// as GtkSpell sharp looks quite old and unmaintained, here is simple wrapper 
 	static class GtkSpell
 	{
+		const string LIBGTKSPELL = "libgtkspell";
 		static bool isSupported;
 		
 #region Native methods
-		[DllImport ("libgtkspell", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGTKSPELL, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr gtkspell_new_attach (IntPtr textView, string locale, IntPtr error);
 
-		[DllImport ("libgtkspell", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGTKSPELL, CallingConvention = CallingConvention.Cdecl)]
 		static extern void gtkspell_detach (IntPtr ptr);
 
-		[DllImport ("libgtkspell", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGTKSPELL, CallingConvention = CallingConvention.Cdecl)]
 		static extern void gtkspell_recheck_all (IntPtr ptr);
 
-		[DllImport ("libgtkspell", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGTKSPELL, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr gtkspell_get_from_text_view (IntPtr textView);
 		
-//		[DllImport ("libgtkspell")]
+//		[DllImport (LIBGTKSPELL)]
 //		static extern bool gtkspell_set_language (IntPtr spell, string lang, IntPtr error);
 #endregion
 		

Modified: main/src/addins/MonoDevelop.GtkCore/libstetic/GladeUtils.cs
===================================================================
@@ -11,6 +11,9 @@ namespace Stetic {
 	public static class GladeUtils {
 
 		public const string Glade20SystemId = "http://glade.gnome.org/glade-2.0.dtd";
+		const string LIBGOBJ = "libgobject-2.0-0.dll";
+		const string LIBGLIBGLUE = "glibsharpglue-2";
+		const string LIBGTK = "libgtk-win32-2.0-0.dll";
 
 		static Gdk.Atom gladeAtom;
 		public static Gdk.Atom ApplicationXGladeAtom {
@@ -749,40 +752,40 @@ static public void GetSignals (ObjectWrapper wrapper, XmlElement parent_elem)
 			}
 		}
 
-		[DllImport ("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr g_type_fundamental (IntPtr gtype);
 
-		[DllImport ("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr g_type_class_ref (IntPtr gtype);
 
-		[DllImport ("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr g_type_class_unref (IntPtr klass);
 
-		[DllImport ("glibsharpglue-2", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGLIBGLUE, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr gtksharp_object_newv (IntPtr gtype, int n_params, string[] names, GLib.Value[] vals);
 
-		[DllImport ("libgtk-win32-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGTK, CallingConvention = CallingConvention.Cdecl)]
 		static extern void gtk_object_sink (IntPtr raw);
 
-		[DllImport ("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern void g_object_get_property (IntPtr obj, string name, ref GLib.Value val);
 
-		[DllImport ("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern void g_object_set_property (IntPtr obj, string name, ref GLib.Value val);
 
-		[DllImport ("libgtk-win32-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGTK, CallingConvention = CallingConvention.Cdecl)]
 		static extern void gtk_container_child_get_property (IntPtr parent, IntPtr child, string name, ref GLib.Value val);
 
-		[DllImport ("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr g_enum_get_value_by_name (IntPtr enum_class, string name);
 
-		[DllImport ("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr g_enum_get_value (IntPtr enum_class, int val);
 
-		[DllImport ("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr g_flags_get_value_by_name (IntPtr flags_class, string nick);
 
-		[DllImport ("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr g_flags_get_first_value (IntPtr flags_class, uint val);
 	}
 }

Modified: main/src/addins/MonoDevelop.GtkCore/libstetic/ParamSpec.cs
===================================================================
@@ -7,6 +7,7 @@
 namespace Stetic {
 
 	public class ParamSpec : IDisposable {
+		const string LIBGOBJ = "libgobject-2.0-0.dll";
 		IntPtr _obj;
 
 		public ParamSpec (IntPtr raw)
@@ -199,31 +200,31 @@ public static ParamSpec LookupChildProperty (Type type, string name)
 			return pspec;
 		}
 
-		[DllImport("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport(LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern void g_param_spec_ref (IntPtr obj);
 
-		[DllImport("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport(LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern void g_param_spec_unref (IntPtr obj);
 
-		[DllImport("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport(LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern void g_param_spec_sink (IntPtr obj);
 
-		[DllImport("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport(LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr g_param_spec_get_name (IntPtr obj);
 
-		[DllImport("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport(LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr g_param_spec_get_nick (IntPtr obj);
 
-		[DllImport("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport(LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr g_param_spec_get_blurb (IntPtr obj);
 
-		[DllImport("libgobject-2.0-0.dll", CallingConvention=CallingConvention.Cdecl)]
+		[DllImport(LIBGOBJ, CallingConvention=CallingConvention.Cdecl)]
 		static extern bool g_param_value_defaults (IntPtr obj, ref GLib.Value value);
 
-		[DllImport("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport(LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr g_type_class_ref (IntPtr gtype);
 
-		[DllImport("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport(LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr g_object_class_find_property (IntPtr klass, string name);
 
 		[DllImport("libgtk-win32-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]

Modified: main/src/addins/MonoDevelop.GtkCore/libsteticui/Metacity/Preview.cs
===================================================================
@@ -10,6 +10,7 @@ namespace Stetic.Metacity {
 
 	internal class Preview : Gtk.Bin
 	{
+		const string LIBMETACITY = "libmetacity-private.so.0";
 		static Theme theme;
 		public static bool ThemeError = false;
 			
@@ -123,7 +124,7 @@ static Theme GetTheme ()
 		protected Preview(GLib.GType gtype) : base(gtype) {}
 		public Preview(IntPtr raw) : base(raw) {}
 
-		[DllImport("libmetacity-private.so.0")]
+		[DllImport(LIBMETACITY)]
 		static extern IntPtr meta_preview_new();
 
 		public Preview () : base (IntPtr.Zero)
@@ -135,7 +136,7 @@ public Preview () : base (IntPtr.Zero)
 			Raw = meta_preview_new();
 		}
 
-		[DllImport("libmetacity-private.so.0")]
+		[DllImport(LIBMETACITY)]
 		static extern void meta_preview_set_title(IntPtr raw, IntPtr title);
 
 		public string Title {
@@ -146,7 +147,7 @@ public Preview () : base (IntPtr.Zero)
 			}
 		}
 
-		[DllImport("libmetacity-private.so.0")]
+		[DllImport(LIBMETACITY)]
 		static extern void meta_preview_set_button_layout(IntPtr raw, ref Stetic.Metacity.ButtonLayout button_layout);
 
 		public Stetic.Metacity.ButtonLayout ButtonLayout
@@ -156,7 +157,7 @@ public Stetic.Metacity.ButtonLayout ButtonLayout
 			}
 		}
 
-		[DllImport("libmetacity-private.so.0")]
+		[DllImport(LIBMETACITY)]
 		static extern void meta_preview_set_theme(IntPtr raw, IntPtr theme);
 
 		public Metacity.Theme Theme {
@@ -165,7 +166,7 @@ public Stetic.Metacity.ButtonLayout ButtonLayout
 			}
 		}
 
-		[DllImport("libmetacity-private.so.0")]
+		[DllImport(LIBMETACITY)]
 		static extern IntPtr meta_preview_get_mini_icon();
 
 		public static Gdk.Pixbuf MiniIcon { 
@@ -176,7 +177,7 @@ public Stetic.Metacity.ButtonLayout ButtonLayout
 			}
 		}
 
-		[DllImport("libmetacity-private.so.0")]
+		[DllImport(LIBMETACITY)]
 		static extern IntPtr meta_preview_get_icon();
 
 		public static Gdk.Pixbuf Icon { 
@@ -187,7 +188,7 @@ public Stetic.Metacity.ButtonLayout ButtonLayout
 			}
 		}
 
-		[DllImport("libmetacity-private.so.0")]
+		[DllImport(LIBMETACITY)]
 		static extern void meta_preview_set_frame_type(IntPtr raw, int type);
 
 		public Stetic.Metacity.FrameType FrameType
@@ -197,7 +198,7 @@ public Stetic.Metacity.FrameType FrameType
 			}
 		}
 
-		[DllImport("libmetacity-private.so.0")]
+		[DllImport(LIBMETACITY)]
 		static extern IntPtr meta_preview_get_type();
 
 		public static new GLib.GType GType { 
@@ -208,7 +209,7 @@ public Stetic.Metacity.FrameType FrameType
 			}
 		}
 
-		[DllImport("libmetacity-private.so.0")]
+		[DllImport(LIBMETACITY)]
 		static extern void meta_preview_set_frame_flags(IntPtr raw, int flags);
 
 		public Stetic.Metacity.FrameFlags FrameFlags

Modified: main/src/addins/MonoDevelop.GtkCore/libsteticui/Windows/WindowsTheme.cs
===================================================================
@@ -7,6 +7,11 @@ namespace Stetic.Windows
 {
 	class WindowsTheme
 	{
+		const string USER32 = "user32.dll";
+		const string GDI32 = "gdi32.dll";
+		const string LIBGDK = "libgdk-win32-2.0-0.dll";
+		const string UXTHEME = "uxtheme";
+		const string LIBUXTHEME = "uxtheme.dll";
 		IntPtr hWnd;
 		IntPtr hTheme;
 
@@ -83,56 +88,56 @@ public Gdk.Rectangle GetWindowClientArea (Gdk.Rectangle allocation)
 		const int DT_SINGLELINE = 0x20;
 		
 
-		[DllImport ("uxtheme", ExactSpelling = true)]
+		[DllImport (UXTHEME, ExactSpelling = true)]
 		extern static Int32 DrawThemeBackground (IntPtr hTheme, IntPtr hdc, int iPartId,
 		   int iStateId, ref RECT pRect, ref RECT pClipRect);
 
-		[DllImport ("uxtheme.dll", ExactSpelling = true, CharSet = CharSet.Unicode)]
+		[DllImport (LIBUXTHEME, ExactSpelling = true, CharSet = CharSet.Unicode)]
 		static extern IntPtr OpenThemeData (IntPtr hWnd, String classList);
 
-		[DllImport ("uxtheme.dll", ExactSpelling = true)]
+		[DllImport (LIBUXTHEME, ExactSpelling = true)]
 		extern static Int32 CloseThemeData (IntPtr hTheme);
 
-		[DllImport ("uxtheme", ExactSpelling = true)]
+		[DllImport (UXTHEME, ExactSpelling = true)]
 		extern static Int32 GetThemePartSize (IntPtr hTheme, IntPtr hdc, int part, int state, ref RECT pRect, int eSize, out SIZE size);
 
-		[DllImport ("uxtheme", ExactSpelling = true)]
+		[DllImport (UXTHEME, ExactSpelling = true)]
 		extern static Int32 GetThemeBackgroundExtent (IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId, ref RECT pBoundingRect, out RECT pContentRect);
 
-		[DllImport ("uxtheme", ExactSpelling = true)]
+		[DllImport (UXTHEME, ExactSpelling = true)]
 		extern static Int32 GetThemeMargins (IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId, int iPropId, out MARGINS pMargins);
 
-		[DllImport ("uxtheme", ExactSpelling = true, CharSet = CharSet.Unicode)]
+		[DllImport (UXTHEME, ExactSpelling = true, CharSet = CharSet.Unicode)]
 		extern static Int32 DrawThemeText (IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId, String text, int textLength, UInt32 textFlags, UInt32 textFlags2, ref RECT pRect);
 
-		[DllImport ("uxtheme", ExactSpelling = true, CharSet = CharSet.Unicode)]
+		[DllImport (UXTHEME, ExactSpelling = true, CharSet = CharSet.Unicode)]
 		extern static Int32 GetThemeSysFont (IntPtr hTheme, int iFontId, ref LOGFONT plf);
 
-		[DllImport ("gdi32.dll")]
+		[DllImport (GDI32)]
 		static extern IntPtr CreateFontIndirect ([In] ref LOGFONT lplf);
 
-		[DllImport ("gdi32.dll")]
+		[DllImport (GDI32)]
 		static extern int SetBkMode (IntPtr hdc, int iBkMode);
 	
-		[DllImport ("gdi32.dll", ExactSpelling = true, PreserveSig = true, SetLastError = true)]
+		[DllImport (GDI32, ExactSpelling = true, PreserveSig = true, SetLastError = true)]
 		static extern IntPtr SelectObject (IntPtr hdc, IntPtr hgdiobj);
 
-		[DllImport ("gdi32.dll")]
+		[DllImport (GDI32)]
 		static extern bool DeleteObject (IntPtr hObject);
 	
-		[DllImport ("user32.dll")]
+		[DllImport (USER32)]
 		static extern IntPtr GetDC (IntPtr hWnd);
 
-		[DllImport ("user32.dll")]
+		[DllImport (USER32)]
 		static extern int ReleaseDC (IntPtr hWnd, IntPtr hDC);
 
-		[DllImport ("libgdk-win32-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGDK, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr gdk_win32_drawable_get_handle (IntPtr raw);
 
-		[DllImport ("libgdk-win32-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGDK, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr gdk_win32_hdc_get (IntPtr drawable, IntPtr gc, int usage);
 
-		[DllImport ("libgdk-win32-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGDK, CallingConvention = CallingConvention.Cdecl)]
 		static extern void gdk_win32_hdc_release (IntPtr drawable, IntPtr gc, int usage);
 	}
 

Modified: main/src/addins/WindowsPlatform/GdkWin32.cs
===================================================================
@@ -32,27 +32,29 @@
 using System.Runtime.InteropServices;
 using System.Windows.Forms;
 using Microsoft.WindowsAPICodePack.Dialogs;
-using MonoDevelop.Core;
+using MonoDevelop.Core;
+using CustomControls.OS;
 
 namespace MonoDevelop.Platform
 {
 	public static class GdkWin32
 	{
 		static readonly uint GotGdkEventsMessage = RegisterWindowMessage ("GDK_WIN32_GOT_EVENTS");
+		internal const string LIBGDK = "libgdk-win32-2.0-0.dll";
 
-		[DllImport ("libgdk-win32-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGDK, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr gdk_win32_drawable_get_handle (IntPtr drawable);
 
-		[DllImport ("libgdk-win32-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGDK, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr gdk_win32_hdc_get (IntPtr drawable, IntPtr gc, int usage);
 
-		[DllImport ("libgdk-win32-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGDK, CallingConvention = CallingConvention.Cdecl)]
 		static extern void gdk_win32_hdc_release (IntPtr drawable, IntPtr gc, int usage);
 
-		[DllImport ("libgdk-win32-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGDK, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr gdk_win32_set_modal_dialog_libgtk_only (IntPtr window);
 
-		[DllImport ("User32.dll", SetLastError=true, CharSet=CharSet.Auto)]
+		[DllImport (Win32.USER32, SetLastError=true, CharSet=CharSet.Auto)]
 		static extern uint RegisterWindowMessage (string lpString);
 
 		public static IntPtr HgdiobjGet (Gdk.Drawable drawable)
@@ -191,7 +193,7 @@ static void ClearGtkDialogHook (IntPtr hdlg)
 		static readonly WindowProc GtkWindowProcDelegate = GtkWindowProc;
 		static readonly int DWLP_DLGPROC = IntPtr.Size; // DWLP_MSGRESULT + sizeof(LRESULT);
 
-		[DllImport("user32.dll")]
+		[DllImport(Win32.USER32)]
 		static extern IntPtr CallWindowProc (IntPtr lpPrevWndFunc, IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
 
 		static IntPtr SetWindowLongPtr (IntPtr hWnd, int nIndex, IntPtr dwNewLong)
@@ -201,10 +203,10 @@ static IntPtr SetWindowLongPtr (IntPtr hWnd, int nIndex, IntPtr dwNewLong)
 			return SetWindowLongPtr64 (hWnd, nIndex, dwNewLong);
 		}
 
-		[DllImport ("user32.dll", EntryPoint="SetWindowLongPtr")]
+		[DllImport (Win32.USER32, EntryPoint="SetWindowLongPtr")]
 		static extern IntPtr SetWindowLongPtr64 (IntPtr hWnd, int nIndex, IntPtr dwNewLong);
 
-		[DllImport("user32.dll", EntryPoint="SetWindowLong")]
+		[DllImport(Win32.USER32, EntryPoint="SetWindowLong")]
 		static extern IntPtr SetWindowLongPtr32 (IntPtr hWnd, int nIndex, IntPtr dwNewLong);
 
 		static IntPtr GetWindowLongPtr (IntPtr hWnd, int nIndex)
@@ -214,10 +216,10 @@ static IntPtr GetWindowLongPtr (IntPtr hWnd, int nIndex)
 			return GetWindowLongPtr64 (hWnd, nIndex);
 		}
 
-		[DllImport ("user32.dll", EntryPoint="GetWindowLongPtr")]
+		[DllImport (Win32.USER32, EntryPoint="GetWindowLongPtr")]
 		static extern IntPtr GetWindowLongPtr64 (IntPtr hWnd, int nIndex);
 
-		[DllImport("user32.dll", EntryPoint="GetWindowLong")]
+		[DllImport(Win32.USER32, EntryPoint="GetWindowLong")]
 		static extern IntPtr GetWindowLongPtr32 (IntPtr hWnd, int nIndex);
 
 		delegate IntPtr WindowProc (IntPtr hdlg, uint uiMsg, IntPtr wParam, IntPtr lParam);

Modified: main/src/addins/WindowsPlatform/RecentFiles.cs
===================================================================
@@ -29,6 +29,7 @@
 using MonoDevelop.Core;
 using MonoDevelop.Ide.Desktop;
 using System.Collections.Generic;
+using CustomControls.OS;
 
 namespace MonoDevelop.Platform
 {
@@ -52,10 +53,10 @@ public override void AddProject (string fileName, string displayName)
 			base.AddProject (fileName, displayName);
 		}
 		
-		[DllImport ("Shell32.dll", CharSet = CharSet.Unicode)]
+		[DllImport (Win32.SHELL32, CharSet = CharSet.Unicode)]
 		static extern void SHAddToRecentDocs (SHARD uFlags, string pv);
 		
-		[DllImport ("Shell32.dll", CharSet = CharSet.Unicode)]
+		[DllImport (Win32.SHELL32, CharSet = CharSet.Unicode)]
 		static extern void SHAddToRecentDocs (SHARD uFlags, IntPtr pv);
 		
 		enum SHARD : uint


Modified: main/src/addins/WindowsPlatform/Win32.cs
===================================================================
@@ -34,65 +34,67 @@ public static class Win32
         public const uint SHGFI_TYPENAME = 0x400;
         public const uint SHGFI_USEFILEATTRIBUTES = 0x10;
         public const uint FILE_ATTRIBUTES_NORMAL = 0x80;
+        internal const string USER32 = "user32.dll";
+        internal const string SHELL32 = "shell32.dll";
 
         #region Delegates
         public delegate bool EnumWindowsCallBack(IntPtr hWnd, int lParam);
         #endregion
 
         #region USER32
-        [DllImport("user32.dll", CharSet = CharSet.Auto)]
+        [DllImport(Win32.USER32, CharSet = CharSet.Auto)]
         public static extern IntPtr GetParent(IntPtr hWnd);
-        [DllImport("User32.Dll")]
+        [DllImport(Win32.USER32)]
         public static extern int GetDlgCtrlID(IntPtr hWndCtl);
-        [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
+        [DllImport(Win32.USER32, CharSet = CharSet.Auto, ExactSpelling = true)]
         public static extern int MapWindowPoints(IntPtr hWnd, IntPtr hWndTo, ref POINT pt, int cPoints);
-        [DllImport("user32.dll", SetLastError = true)]
+        [DllImport(Win32.USER32, SetLastError = true)]
         public static extern bool GetWindowInfo(IntPtr hwnd, out WINDOWINFO pwi);
-        [DllImport("User32.Dll")]
+        [DllImport(Win32.USER32)]
         public static extern void GetWindowText(IntPtr hWnd, StringBuilder param, int length);
-        [DllImport("User32.Dll")]
+        [DllImport(Win32.USER32)]
         public static extern void GetClassName(IntPtr hWnd, StringBuilder param, int length);
-        [DllImport("user32.Dll")]
+        [DllImport(Win32.USER32)]
         public static extern bool EnumChildWindows(IntPtr hWndParent, EnumWindowsCallBack lpEnumFunc, int lParam);
-        [DllImport("user32.Dll")]
+        [DllImport(Win32.USER32)]
         public static extern bool EnumWindows(EnumWindowsCallBack lpEnumFunc, int lParam);
-        [DllImport("User32.dll", CharSet = CharSet.Auto)]
+        [DllImport(Win32.USER32, CharSet = CharSet.Auto)]
         public static extern bool ReleaseCapture();
-        [DllImport("user32.dll", CharSet = CharSet.Auto)]
+        [DllImport(Win32.USER32, CharSet = CharSet.Auto)]
         public static extern IntPtr SetCapture(IntPtr hWnd);
-        [DllImport("user32.dll", CharSet = CharSet.Auto)]
+        [DllImport(Win32.USER32, CharSet = CharSet.Auto)]
         public static extern IntPtr ChildWindowFromPointEx(IntPtr hParent, POINT pt, ChildFromPointFlags flags);
-        [DllImport("user32.dll", EntryPoint = "FindWindowExA", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
+        [DllImport(Win32.USER32, EntryPoint = "FindWindowExA", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
         public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
-        [DllImport("user32.dll")]
+        [DllImport(Win32.USER32)]
         public static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
-        [DllImport("user32.dll", CharSet = CharSet.Auto)]
+        [DllImport(Win32.USER32, CharSet = CharSet.Auto)]
         public static extern int PostMessage(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam);
-        [DllImport("user32.dll", CharSet = CharSet.Auto)]
+        [DllImport(Win32.USER32, CharSet = CharSet.Auto)]
         public static extern int PostMessage(IntPtr hWnd, int msg, int wParam, int lParam);
-        [DllImport("user32.dll", CharSet = CharSet.Auto)]
+        [DllImport(Win32.USER32, CharSet = CharSet.Auto)]
         public static extern int SendMessage(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam);
-        [DllImport("user32.dll", CharSet = CharSet.Auto)]
+        [DllImport(Win32.USER32, CharSet = CharSet.Auto)]
         public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);
-        [DllImport("user32.dll", CharSet = CharSet.Auto)]
+        [DllImport(Win32.USER32, CharSet = CharSet.Auto)]
         public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, StringBuilder param);
-        [DllImport("user32.dll", CharSet = CharSet.Auto)]
+        [DllImport(Win32.USER32, CharSet = CharSet.Auto)]
         public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, char[] chars);
-        [DllImport("user32.dll", CharSet = CharSet.Auto)]
+        [DllImport(Win32.USER32, CharSet = CharSet.Auto)]
         public static extern IntPtr BeginDeferWindowPos(int nNumWindows);
-        [DllImport("user32.dll", CharSet = CharSet.Auto)]
+        [DllImport(Win32.USER32, CharSet = CharSet.Auto)]
         public static extern IntPtr DeferWindowPos(IntPtr hWinPosInfo, IntPtr hWnd, IntPtr hWndInsertAfter, int x, int y, int Width, int Height, SetWindowPosFlags flags);
-        [DllImport("user32.dll", CharSet = CharSet.Auto)]
+        [DllImport(Win32.USER32, CharSet = CharSet.Auto)]
         public static extern bool EndDeferWindowPos(IntPtr hWinPosInfo);
-        [DllImport("user32.dll", CharSet = CharSet.Auto)]
+        [DllImport(Win32.USER32, CharSet = CharSet.Auto)]
         public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int x, int y, int Width, int Height, SetWindowPosFlags flags);
-        [DllImport("user32.dll")]
+        [DllImport(Win32.USER32)]
         public static extern bool GetWindowRect(IntPtr hwnd, ref RECT rect);
-        [DllImport("user32.dll")]
+        [DllImport(Win32.USER32)]
         public static extern bool GetClientRect(IntPtr hwnd, ref RECT rect);
-        [DllImport("user32.dll")]
+        [DllImport(Win32.USER32)]
         public static extern bool DestroyIcon([In] IntPtr hIcon);
-        [DllImport("shell32.dll", CharSet = CharSet.Unicode)]
+        [DllImport(Win32.SHELL32, CharSet = CharSet.Unicode)]
         public static extern IntPtr SHGetFileInfoW([In] string pszPath, uint dwFileAttributes, [In, Out] ref SHFILEINFO psfi, uint cbSizeFileInfo, uint uFlags);
         #endregion
     }


Modified: main/src/addins/WindowsPlatform/WindowsPlatform.cs
===================================================================
@@ -163,10 +163,10 @@ unsafe struct MonitorInfo {
 		[UnmanagedFunctionPointer (CallingConvention.Winapi)]
 		delegate int EnumMonitorsCallback (IntPtr hmonitor, IntPtr hdc, IntPtr prect, IntPtr user_data);
 
-		[DllImport ("User32.dll")]
+		[DllImport (Win32.USER32)]
 		extern static int EnumDisplayMonitors (IntPtr hdc, IntPtr clip, EnumMonitorsCallback callback, IntPtr user_data);
 
-		[DllImport ("User32.dll")]
+		[DllImport (Win32.USER32)]
 		extern static int GetMonitorInfoA (IntPtr hmonitor, ref MonitorInfo info);
 
 		public override Gdk.Rectangle GetUsableMonitorGeometry (Gdk.Screen screen, int monitor_id)

Modified: main/src/addins/WindowsPlatform/WindowsProxyCredentialProvider.cs
===================================================================
@@ -148,27 +148,30 @@ public override DialogResult ShowMagicDialog ()
 
 	static class Native
 	{
-		[DllImport ("ole32.dll")]
+		const string OLE32 = "ole32.dll";
+		const string CREDUI = "credui.dll";
+
+		[DllImport (OLE32)]
 		internal static extern void CoTaskMemFree (IntPtr ptr);
 
-		[DllImport ("credui.dll")]
+		[DllImport (CREDUI)]
 		internal static extern CredUiReturnCodes CredUIPromptForCredentials (ref CredentialUiInfo uiInfo, string targetName,
 			IntPtr reserved1, int iError, StringBuilder userName, int maxUserName, StringBuilder password, int maxPassword,
 			[MarshalAs (UnmanagedType.Bool)] ref bool pfSave, CredentialsUiFlags windowsFlags);
 
-		[DllImport ("credui.dll", CharSet = CharSet.Unicode)]
+		[DllImport (CREDUI, CharSet = CharSet.Unicode)]
 		internal static extern WindowsCredentialPromptReturnCode CredUIPromptForWindowsCredentials (ref CredentialUiInfo uiInfo,
 			int authError, ref int authPackage, IntPtr inAuthBuffer, uint inAuthBufferSize,
 			out IntPtr refOutAuthBuffer, out int refOutAuthBufferSize, ref bool fSave,
 			CredentialsUiWindowsFlags uiWindowsFlags);
 
-		[DllImport ("credui.dll", CharSet = CharSet.Auto)]
+		[DllImport (CREDUI, CharSet = CharSet.Auto)]
 		internal static extern bool CredUnPackAuthenticationBuffer (int dwFlags, IntPtr pAuthBuffer,
 			int cbAuthBuffer, StringBuilder pszUserName, ref int pcchMaxUserName,
 			StringBuilder pszDomainName, ref int pcchMaxDomainame, StringBuilder pszPassword,
 			ref int pcchMaxPassword);
 
-		[DllImport ("credui.dll", CharSet = CharSet.Auto)]
+		[DllImport (CREDUI, CharSet = CharSet.Auto)]
 		internal static extern bool CredPackAuthenticationBuffer (int dwFlags, string pszUserName, string pszPassword,
 																  IntPtr packedCredentials, ref uint packedCredentialsLength);
 


Modified: main/src/addins/WindowsPlatform/WindowsSecureStoragePasswordProvider.cs
===================================================================
@@ -252,14 +252,16 @@ override protected bool ReleaseHandle ()
 
 	static class NativeMethods
 	{
-		[DllImport ("advapi32.dll", CharSet = CharSet.Unicode, SetLastError = true, EntryPoint = "CredWriteW")]
+		const string ADVAPI32 = "advapi32.dll";
+
+		[DllImport (ADVAPI32, CharSet = CharSet.Unicode, SetLastError = true, EntryPoint = "CredWriteW")]
 		internal static extern bool CredWrite ([In] ref NativeCredential credential, [In] uint flags);
 
-		[DllImport ("advapi32.dll", CharSet = CharSet.Unicode, SetLastError = true, EntryPoint = "CredReadW")]
+		[DllImport (ADVAPI32, CharSet = CharSet.Unicode, SetLastError = true, EntryPoint = "CredReadW")]
 		internal static extern bool CredRead (string targetName, NativeCredentialType type, CredentialFlags flags,
 			out IntPtr credential);
 
-		[DllImport ("advapi32.dll", CharSet = CharSet.Unicode, EntryPoint = "CredFree")]
+		[DllImport (ADVAPI32, CharSet = CharSet.Unicode, EntryPoint = "CredFree")]
 		internal static extern bool CredFree ([In] IntPtr cred);
 	}
 }


Modified: main/src/core/Mono.Texteditor/Mono.TextEditor/Gui/GtkWorkarounds.cs
===================================================================
@@ -37,6 +37,7 @@ namespace Mono.TextEditor
 	public static class GtkWorkarounds
 	{
 		const string LIBOBJC ="/usr/lib/libobjc.dylib";
+		const string USER32DLL = "User32.dll";
 		
 		[DllImport (LIBOBJC, EntryPoint = "sel_registerName")]
 		static extern IntPtr sel_registerName (string selector);
@@ -71,7 +72,7 @@ public static class GtkWorkarounds
 		[DllImport (LIBOBJC, EntryPoint = "objc_msgSend_stret")]
 		static extern void objc_msgSend_CGRect64 (out CGRect64 rect, IntPtr klass, IntPtr selector);
 		
-		[DllImport ("libgtk-quartz-2.0.dylib")]
+		[DllImport (PangoUtil.LIBQUARTZ)]
 		static extern IntPtr gdk_quartz_window_get_nswindow (IntPtr window);
 
 		struct CGRect32
@@ -259,10 +260,10 @@ unsafe struct MonitorInfo {
 		[UnmanagedFunctionPointer (CallingConvention.Winapi)]
 		delegate int EnumMonitorsCallback (IntPtr hmonitor, IntPtr hdc, IntPtr prect, IntPtr user_data);
 
-		[DllImport ("User32.dll")]
+		[DllImport (USER32DLL)]
 		extern static int EnumDisplayMonitors (IntPtr hdc, IntPtr clip, EnumMonitorsCallback callback, IntPtr user_data);
 
-		[DllImport ("User32.dll")]
+		[DllImport (USER32DLL)]
 		extern static int GetMonitorInfoA (IntPtr hmonitor, ref MonitorInfo info);
 
 		static Gdk.Rectangle WindowsGetUsableMonitorGeometry (Gdk.Screen screen, int monitor_id)
@@ -735,7 +736,7 @@ public static void MapRawKeys (Gdk.EventKey evt, out Gdk.Key key, out Gdk.Modifi
 			mod = accels[0].Modifier;
 		}
 
-		[System.Runtime.InteropServices.DllImport ("libgdk-win32-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[System.Runtime.InteropServices.DllImport (PangoUtil.LIBGDK, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr gdk_win32_drawable_get_handle (IntPtr drawable);
 		
 		enum DwmWindowAttribute
@@ -774,7 +775,7 @@ public Win32Rect (int left, int top, int right, int bottom)
 		[DllImport ("dwmapi.dll")]
 		static extern int DwmIsCompositionEnabled (out bool enabled);
 		
-		[DllImport ("User32.dll")]
+		[DllImport (USER32DLL)]
 		static extern bool GetWindowRect (IntPtr hwnd, out Win32Rect rect);
 		
 		public static void SetImCursorLocation (Gtk.IMContext ctx, Gdk.Window clientWindow, Gdk.Rectangle cursor)
@@ -832,7 +833,7 @@ public static void UpdateNativeShadow (Gtk.Window window)
 			objc_msgSend_IntPtr (ptr, sel_invalidateShadow);
 		}
 
-		[DllImport ("gtksharpglue-2", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (PangoUtil.LIBGTKGLUE, CallingConvention = CallingConvention.Cdecl)]
 		static extern void gtksharp_container_leak_fixed_marker ();
 
 		static HashSet<Type> fixedContainerTypes;
@@ -984,7 +985,7 @@ static ForallDelegate CreateForallCallback (IntPtr gtype)
 		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
 		delegate void ForallDelegate (IntPtr container, bool include_internals, IntPtr cb, IntPtr data);
 		
-		[DllImport("gtksharpglue-2", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport(PangoUtil.LIBGTKGLUE, CallingConvention = CallingConvention.Cdecl)]
 		static extern void gtksharp_container_override_forall (IntPtr gtype, ForallDelegate cb);
 
 		public static string MarkupLinks (string text)
@@ -1037,10 +1038,10 @@ class ActivateLinkEventArgs : GLib.SignalArgs
 
 		static bool canSetOverlayScrollbarPolicy = true;
 
-		[DllImport ("libgtk-quartz-2.0.dylib")]
+		[DllImport (PangoUtil.LIBQUARTZ)]
 		static extern void gtk_scrolled_window_set_overlay_policy (IntPtr sw, Gtk.PolicyType hpolicy, Gtk.PolicyType vpolicy);
 
-		[DllImport ("libgtk-quartz-2.0.dylib")]
+		[DllImport (PangoUtil.LIBQUARTZ)]
 		static extern void gtk_scrolled_window_get_overlay_policy (IntPtr sw, out Gtk.PolicyType hpolicy, out Gtk.PolicyType vpolicy);
 
 		public static void SetOverlayScrollbarPolicy (Gtk.ScrolledWindow sw, Gtk.PolicyType hpolicy, Gtk.PolicyType vpolicy)
@@ -1072,7 +1073,7 @@ public static void GetOverlayScrollbarPolicy (Gtk.ScrolledWindow sw, out Gtk.Pol
 			canSetOverlayScrollbarPolicy = false;
 		}
 
-		[DllImport ("libgtk-win32-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (PangoUtil.LIBGTK, CallingConvention = CallingConvention.Cdecl)]
 		static extern bool gtk_tree_view_get_tooltip_context (IntPtr raw, ref int x, ref int y, bool keyboard_tip, out IntPtr model, out IntPtr path, IntPtr iter);
 
 		//the GTK# version of this has 'out' instead of 'ref', preventing passing the x,y values in
@@ -1092,10 +1093,10 @@ public static void GetOverlayScrollbarPolicy (Gtk.ScrolledWindow sw, out Gtk.Pol
 		
 		static bool supportsHiResIcons = false; // Disabled for now
 
-		[DllImport ("libgtk-quartz-2.0.dylib")]
+		[DllImport (PangoUtil.LIBQUARTZ)]
 		static extern void gtk_icon_source_set_scale (IntPtr source, double scale);
 		
-		[DllImport ("libgtk-quartz-2.0.dylib")]
+		[DllImport (PangoUtil.LIBQUARTZ)]
 		static extern void gtk_icon_source_set_scale_wildcarded (IntPtr source, bool setting);
 		
 		[DllImport (PangoUtil.LIBGTK)]

Modified: main/src/core/Mono.Texteditor/Mono.TextEditor/Gui/PangoUtil.cs
===================================================================
@@ -39,6 +39,8 @@ public static class PangoUtil
 		internal const string LIBGOBJECT      = "libgobject-2.0-0.dll";
 		internal const string LIBPANGO        = "libpango-1.0-0.dll";
 		internal const string LIBPANGOCAIRO   = "libpangocairo-1.0-0.dll";
+		internal const string LIBQUARTZ       = "libgtk-quartz-2.0.dylib";
+		internal const string LIBGTKGLUE      = "gtksharpglue-2";
 		
 		/// <summary>
 		/// This doesn't leak Pango layouts, unlike some other ways to create them in GTK# &lt;= 2.12.11

Modified: main/src/core/Mono.Texteditor/Mono.TextEditor/HelperMethods.cs
===================================================================
@@ -69,7 +69,7 @@ public static IEnumerable<TextSegment> AdjustSegments (this IEnumerable<TextSegm
 		}
 		
 		
-		[DllImport("libpangocairo-1.0-0.dll", CallingConvention=CallingConvention.Cdecl)]
+		[DllImport(PangoUtil.LIBPANGOCAIRO, CallingConvention=CallingConvention.Cdecl)]
 		static extern void pango_cairo_show_layout (IntPtr cr, IntPtr layout);
 
 		public static void ShowLayout (this Cairo.Context cr, Pango.Layout layout)
@@ -77,7 +77,7 @@ public static void ShowLayout (this Cairo.Context cr, Pango.Layout layout)
 			pango_cairo_show_layout (cr == null ? IntPtr.Zero : cr.Handle, layout == null ? IntPtr.Zero : layout.Handle);
 		}
 
-		[DllImport("libpangocairo-1.0-0.dll", CallingConvention=CallingConvention.Cdecl)]
+		[DllImport(PangoUtil.LIBPANGOCAIRO, CallingConvention=CallingConvention.Cdecl)]
 		static extern IntPtr pango_cairo_create_layout (IntPtr cr);
 
 		public static Pango.Layout CreateLayout (this Cairo.Context cr)
@@ -86,7 +86,7 @@ public static Pango.Layout CreateLayout (this Cairo.Context cr)
 			return GLib.Object.GetObject (raw_ret) as Pango.Layout;
 		}
 
-		[DllImport("libpangocairo-1.0-0.dll", CallingConvention=CallingConvention.Cdecl)]
+		[DllImport(PangoUtil.LIBPANGOCAIRO, CallingConvention=CallingConvention.Cdecl)]
 		static extern void pango_cairo_layout_path (IntPtr cr, IntPtr layout);
 
 		public static void LayoutPath (this Cairo.Context cr, Pango.Layout layout)
@@ -94,7 +94,7 @@ public static void LayoutPath (this Cairo.Context cr, Pango.Layout layout)
 			pango_cairo_layout_path (cr == null ? IntPtr.Zero : cr.Handle, layout == null ? IntPtr.Zero : layout.Handle);
 		}
 
-		[DllImport("libpangocairo-1.0-0.dll", CallingConvention=CallingConvention.Cdecl)]
+		[DllImport(PangoUtil.LIBPANGOCAIRO, CallingConvention=CallingConvention.Cdecl)]
 		static extern void pango_cairo_context_set_resolution (IntPtr pango_context, double dpi);
 
 		public static void ContextSetResolution (this Pango.Context context, double dpi)
@@ -102,7 +102,7 @@ public static void ContextSetResolution (this Pango.Context context, double dpi)
 			pango_cairo_context_set_resolution (context == null ? IntPtr.Zero : context.Handle, dpi);
 		}
 
-		[DllImport("libpangocairo-1.0-0.dll", CallingConvention=CallingConvention.Cdecl)]
+		[DllImport(PangoUtil.LIBPANGOCAIRO, CallingConvention=CallingConvention.Cdecl)]
 		static extern IntPtr pango_layout_get_context (IntPtr layout);
 
 		public static string GetColorString (Gdk.Color color)

Modified: main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ProcessExtensions.cs
===================================================================
@@ -88,7 +88,7 @@ static IEnumerable<int> GetAllChildren (Dictionary<int,List<int>> procRelations,
 			return procRelations;
 		}
 
-		static uint TH32CS_SNAPPROCESS = 2;
+		const uint TH32CS_SNAPPROCESS = 2;
 
 		[StructLayout(LayoutKind.Sequential)]
 		public struct PROCESSENTRY32
@@ -106,13 +106,14 @@ public struct PROCESSENTRY32
 			public string szExeFile;
 		};
 	
-		[DllImport("kernel32.dll", SetLastError = true)]
+		const string kernel = "kernel32.dll";
+		[DllImport(kernel, SetLastError = true)]
 		static extern IntPtr CreateToolhelp32Snapshot (uint dwFlags, uint th32ProcessID);
 
-		[DllImport("kernel32.dll")]
+		[DllImport(kernel)]
 		static extern bool Process32First (IntPtr hSnapshot, ref PROCESSENTRY32 lppe);
 
-		[DllImport("kernel32.dll")]
+		[DllImport(kernel)]
 		static extern bool Process32Next (IntPtr hSnapshot, ref PROCESSENTRY32 lppe);
 	}
 }

Modified: main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Text/TextFile.cs
===================================================================
@@ -40,7 +40,9 @@
 namespace MonoDevelop.Projects.Text
 {
 	public class TextFile: IEditableTextFile
-	{
+	{
+		const string LIBGLIB = "libglib-2.0-0.dll";
+
 		FilePath name;
 		StringBuilder text;
 		string sourceEncoding;
@@ -235,16 +237,16 @@ static byte[] ConvertToBytes (byte[] content, long nread, string toEncoding, str
 				throw ex;
 			}
 		}
-		
-		[DllImport("libglib-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+			
+		[DllImport(LIBGLIB, CallingConvention = CallingConvention.Cdecl)]
 		//note: textLength is signed, read/written are not
 		static extern IntPtr g_convert(byte[] text, IntPtr textLength, string toCodeset, string fromCodeset, 
 		                               ref IntPtr read, ref IntPtr written, ref IntPtr err);
 		
-		[DllImport("libglib-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport(LIBGLIB, CallingConvention = CallingConvention.Cdecl)]
 		static extern void g_free (IntPtr ptr);
 		
-		[DllImport("libglib-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport(LIBGLIB, CallingConvention = CallingConvention.Cdecl)]
 		static extern void g_error_free (IntPtr err);
 		
 		#endregion

Modified: main/src/core/MonoDevelop.Ide/MonoDevelop.Components/CairoExtensions.cs
===================================================================
@@ -50,6 +50,7 @@ public enum CairoCorners
 
     public static class CairoExtensions
     {
+		internal const string LIBCAIRO = "libcairo-2.dll";
 		public static Cairo.Rectangle ToCairoRect (this Gdk.Rectangle rect)
 		{
 			return new Cairo.Rectangle (rect.X, rect.Y, rect.Width, rect.Height);
@@ -421,10 +422,10 @@ public static void RenderOuterShadow (this Cairo.Context self, Gdk.Rectangle are
 			}
 		}
 
-		[DllImport ("libcairo-2.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBCAIRO, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr cairo_pattern_set_extend(IntPtr pattern, CairoExtend extend);
 
-		[DllImport ("libcairo-2.dll", CallingConvention=CallingConvention.Cdecl)]
+		[DllImport (LIBCAIRO, CallingConvention=CallingConvention.Cdecl)]
 		internal static extern IntPtr cairo_get_source (IntPtr cr);
 
 		enum CairoExtend {
@@ -488,7 +489,7 @@ private static bool CallCairoMethod (Cairo.Context cr, ref CairoInteropCall call
 
         private static bool native_push_pop_exists = true;
 
-        [DllImport ("libcairo-2.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBCAIRO, CallingConvention = CallingConvention.Cdecl)]
         private static extern void cairo_push_group (IntPtr ptr);
         private static CairoInteropCall cairo_push_group_call = new CairoInteropCall ("PushGroup");
 
@@ -507,7 +508,7 @@ public static void PushGroup (Cairo.Context cr)
             }
         }
 
-		[DllImport ("libcairo-2.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBCAIRO, CallingConvention = CallingConvention.Cdecl)]
         private static extern void cairo_pop_group_to_source (IntPtr ptr);
         private static CairoInteropCall cairo_pop_group_to_source_call = new CairoInteropCall ("PopGroupToSource");
 
@@ -666,13 +667,13 @@ public class QuartzSurface : Cairo.Surface
 	{
 		const string CoreGraphics = "/System/Library/Frameworks/ApplicationServices.framework/Frameworks/CoreGraphics.framework/CoreGraphics";
 
-		[DllImport ("libcairo-2.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (CairoExtensions.LIBCAIRO, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr cairo_quartz_surface_create (Cairo.Format format, uint width, uint height);
 
-		[DllImport ("libcairo-2.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (CairoExtensions.LIBCAIRO, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr cairo_quartz_surface_get_cg_context (IntPtr surface);
 
-		[DllImport ("libcairo-2.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (CairoExtensions.LIBCAIRO, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr cairo_get_target (IntPtr context);
 
 		[DllImport (CoreGraphics, EntryPoint="CGContextConvertRectToDeviceSpace", CallingConvention = CallingConvention.Cdecl)]

Modified: main/src/core/MonoDevelop.Ide/MonoDevelop.Components/PangoCairoHelper.cs
===================================================================
@@ -33,7 +33,8 @@ namespace MonoDevelop.Components
 {
 	public static class PangoCairoHelper
 	{
-		[DllImport("libpangocairo-1.0-0.dll", CallingConvention=CallingConvention.Cdecl)]
+		const string LIBPANGOCAIRO = "libpangocairo-1.0-0.dll";
+		[DllImport(LIBPANGOCAIRO, CallingConvention=CallingConvention.Cdecl)]
 		private static extern void pango_cairo_show_layout (IntPtr cr, IntPtr layout);
 
 		public static void ShowLayout (Cairo.Context cr, Pango.Layout layout)
@@ -41,7 +42,7 @@ public static void ShowLayout (Cairo.Context cr, Pango.Layout layout)
 			pango_cairo_show_layout (cr == null ? IntPtr.Zero : cr.Handle, layout == null ? IntPtr.Zero : layout.Handle);
 		}
 
-		[DllImport("libpangocairo-1.0-0.dll", CallingConvention=CallingConvention.Cdecl)]
+		[DllImport(LIBPANGOCAIRO, CallingConvention=CallingConvention.Cdecl)]
 		private static extern IntPtr pango_cairo_create_layout (IntPtr cr);
 
 		public static Pango.Layout CreateLayout (Cairo.Context cr)
@@ -50,7 +51,7 @@ public static Pango.Layout CreateLayout (Cairo.Context cr)
 			return GLib.Object.GetObject (raw_ret) as Pango.Layout;
 		}
 
-		[DllImport("libpangocairo-1.0-0.dll", CallingConvention=CallingConvention.Cdecl)]
+		[DllImport(LIBPANGOCAIRO, CallingConvention=CallingConvention.Cdecl)]
 		private static extern void pango_cairo_layout_path (IntPtr cr, IntPtr layout);
 
 		public static void LayoutPath (Cairo.Context cr, Pango.Layout layout, bool iUnderstandThePerformanceImplications)
@@ -58,7 +59,7 @@ public static void LayoutPath (Cairo.Context cr, Pango.Layout layout, bool iUnde
 			pango_cairo_layout_path (cr == null ? IntPtr.Zero : cr.Handle, layout == null ? IntPtr.Zero : layout.Handle);
 		}
 
-		[DllImport("libpangocairo-1.0-0.dll", CallingConvention=CallingConvention.Cdecl)]
+		[DllImport(LIBPANGOCAIRO, CallingConvention=CallingConvention.Cdecl)]
 		private static extern void pango_cairo_context_set_resolution (IntPtr pango_context, double dpi);
 
 		public static void ContextSetResolution (Pango.Context context, double dpi)
@@ -66,7 +67,7 @@ public static void ContextSetResolution (Pango.Context context, double dpi)
 			pango_cairo_context_set_resolution (context == null ? IntPtr.Zero : context.Handle, dpi);
 		}
 
-		[DllImport("libpangocairo-1.0-0.dll", CallingConvention=CallingConvention.Cdecl)]
+		[DllImport(LIBPANGOCAIRO, CallingConvention=CallingConvention.Cdecl)]
 		private static extern IntPtr pango_layout_get_context (IntPtr layout);
 
 		public static string GetColorString (Gdk.Color color)

Modified: main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/GLibLogging.cs
===================================================================
@@ -72,7 +72,7 @@ public enum LogLevelFlags : int
 
 	public class Log
 	{
-
+		const string LIBGLIB = "libglib-2.0-0.dll";
 		static Hashtable handlers;
 
 		static void EnsureHash ()
@@ -81,7 +81,7 @@ static void EnsureHash ()
 				handlers = new Hashtable ();
 		}
 
-		[DllImport ("libglib-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGLIB, CallingConvention = CallingConvention.Cdecl)]
 		static extern void g_logv (IntPtr log_domain, LogLevelFlags flags, IntPtr message);
 
 		public void WriteLog (string logDomain, LogLevelFlags flags, string format, params object[] args)
@@ -93,7 +93,7 @@ public void WriteLog (string logDomain, LogLevelFlags flags, string format, para
 			GLib.Marshaller.Free (nmessage);
 		}
 
-		[DllImport ("libglib-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGLIB, CallingConvention = CallingConvention.Cdecl)]
 		static extern uint g_log_set_handler (IntPtr log_domain, LogLevelFlags flags, LogFunc2 log_func, LogFunc user_data);
 
 		static readonly LogFunc2 LogFuncTrampoline = (string domain, LogLevelFlags level, string message, LogFunc user_data) => {
@@ -111,7 +111,7 @@ public static uint SetLogHandler (string logDomain, LogLevelFlags flags, LogFunc
 			return result;
 		}
 
-		[DllImport ("libglib-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGLIB, CallingConvention = CallingConvention.Cdecl)]
 		static extern uint g_log_remove_handler (IntPtr log_domain, uint handler_id);
 
 		public static void RemoveLogHandler (string logDomain, uint handlerID)
@@ -125,7 +125,7 @@ public static void RemoveLogHandler (string logDomain, uint handlerID)
 		}
 
 
-		[DllImport ("libglib-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGLIB, CallingConvention = CallingConvention.Cdecl)]
 		static extern PrintFunc g_set_print_handler (PrintFunc handler);
 
 		public static PrintFunc SetPrintHandler (PrintFunc handler)
@@ -136,7 +136,7 @@ public static PrintFunc SetPrintHandler (PrintFunc handler)
 			return g_set_print_handler (handler);
 		}
 
-		[DllImport ("libglib-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGLIB, CallingConvention = CallingConvention.Cdecl)]
 		static extern PrintFunc g_set_printerr_handler (PrintFunc handler);
 
 		public static PrintFunc SetPrintErrorHandler (PrintFunc handler)
@@ -147,7 +147,7 @@ public static PrintFunc SetPrintErrorHandler (PrintFunc handler)
 			return g_set_printerr_handler (handler);
 		}
 
-		[DllImport ("libglib-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGLIB, CallingConvention = CallingConvention.Cdecl)]
 		static extern void g_log_default_handler (IntPtr log_domain, LogLevelFlags log_level, IntPtr message, IntPtr unused_data);
 
 		public static void DefaultHandler (string logDomain, LogLevelFlags logLevel, string message)
@@ -159,7 +159,7 @@ public static void DefaultHandler (string logDomain, LogLevelFlags logLevel, str
 			GLib.Marshaller.Free (nmess);
 		}
 
-		[DllImport ("libglib-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGLIB, CallingConvention = CallingConvention.Cdecl)]
 		extern static LogLevelFlags g_log_set_always_fatal (LogLevelFlags fatal_mask);
 
 		public static LogLevelFlags SetAlwaysFatal (LogLevelFlags fatalMask)
@@ -167,7 +167,7 @@ public static LogLevelFlags SetAlwaysFatal (LogLevelFlags fatalMask)
 			return g_log_set_always_fatal (fatalMask);
 		}
 
-		[DllImport ("libglib-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGLIB, CallingConvention = CallingConvention.Cdecl)]
 		extern static LogLevelFlags g_log_set_fatal_mask (IntPtr log_domain, LogLevelFlags fatal_mask);
 
 		public static LogLevelFlags SetAlwaysFatal (string logDomain, LogLevelFlags fatalMask)


Modified: main/src/tools/mdmonitor/MacIntegration/MacIntegration.cs
===================================================================
@@ -31,9 +31,11 @@
 
 namespace MacIntegration
 {
-	public class IgeMacMenu
+	public static class IgeMacMenu
 	{
-		[DllImport("libigemacintegration.dylib")]
+		internal const string maclib = "libigemacintegration.dylib";
+
+		[DllImport(maclib)]
 		static extern void ige_mac_menu_connect_window_key_handler (IntPtr window);
 
 		public static void ConnectWindowKeyHandler (Gtk.Window window)
@@ -41,7 +43,7 @@ public static void ConnectWindowKeyHandler (Gtk.Window window)
 			ige_mac_menu_connect_window_key_handler (window.Handle);
 		}
 
-		[DllImport("libigemacintegration.dylib")]
+		[DllImport(maclib)]
 		static extern void ige_mac_menu_set_global_key_handler_enabled (bool enabled);
 
 		public static bool GlobalKeyHandlerEnabled {
@@ -50,7 +52,7 @@ public static void ConnectWindowKeyHandler (Gtk.Window window)
 			}
 		}
 
-		[DllImport("libigemacintegration.dylib")]
+		[DllImport(maclib)]
 		static extern void ige_mac_menu_set_menu_bar (IntPtr menu_shell);
 
 		public static Gtk.MenuShell MenuBar { 
@@ -59,7 +61,7 @@ public static void ConnectWindowKeyHandler (Gtk.Window window)
 			}
 		}
 
-		[DllImport("libigemacintegration.dylib")]
+		[DllImport(maclib)]
 		static extern void ige_mac_menu_set_quit_menu_item (IntPtr quit_item);
 
 		public static Gtk.MenuItem QuitMenuItem { 
@@ -68,7 +70,7 @@ public static void ConnectWindowKeyHandler (Gtk.Window window)
 			}
 		}
 
-		[DllImport("libigemacintegration.dylib")]
+		[DllImport(maclib)]
 		static extern IntPtr ige_mac_menu_add_app_menu_group ();
 
 		public static IgeMacMenuGroup AddAppMenuGroup ()
@@ -81,7 +83,7 @@ public static IgeMacMenuGroup AddAppMenuGroup ()
 
 	public class IgeMacMenuGroup : GLib.Opaque
 	{
-		[DllImport("libigemacintegration.dylib")]
+		[DllImport(IgeMacMenu.maclib)]
 		static extern void ige_mac_menu_add_app_menu_item (IntPtr raw, IntPtr menu_item, IntPtr label);
 
 		public void AddMenuItem (Gtk.MenuItem menu_item, string label)

   Commit: 459bb278e5ea484d6c7904ba176ef632e4d95436
   Author: Lluis Sanchez <[email protected]> (slluis)
     Date: 2013-11-12 14:35:09 GMT
      URL: https://github.com/mono/monodevelop/commit/459bb278e5ea484d6c7904ba176ef632e4d95436

Merge pull request #429 from mono/streamlineDllImport

[Cleanup] Try and streamline most DllImports by using shared lib names.

Changed paths:
  M main/src/addins/MacPlatform/MacInterop/GtkQuartz.cs
  M main/src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.Editor/GtkSpell.cs
  M main/src/addins/MonoDevelop.GtkCore/libstetic/GladeUtils.cs
  M main/src/addins/MonoDevelop.GtkCore/libstetic/ParamSpec.cs
  M main/src/addins/MonoDevelop.GtkCore/libsteticui/Metacity/Preview.cs
  M main/src/addins/MonoDevelop.GtkCore/libsteticui/Windows/WindowsTheme.cs
  M main/src/addins/WindowsPlatform/GdkWin32.cs
  M main/src/addins/WindowsPlatform/RecentFiles.cs
  M main/src/addins/WindowsPlatform/Win32.cs
  M main/src/addins/WindowsPlatform/WindowsPlatform.cs
  M main/src/addins/WindowsPlatform/WindowsProxyCredentialProvider.cs
  M main/src/addins/WindowsPlatform/WindowsSecureStoragePasswordProvider.cs
  M main/src/core/Mono.Texteditor/Mono.TextEditor/Gui/GtkWorkarounds.cs
  M main/src/core/Mono.Texteditor/Mono.TextEditor/Gui/PangoUtil.cs
  M main/src/core/Mono.Texteditor/Mono.TextEditor/HelperMethods.cs
  M main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ProcessExtensions.cs
  M main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Text/TextFile.cs
  M main/src/core/MonoDevelop.Ide/MonoDevelop.Components/CairoExtensions.cs
  M main/src/core/MonoDevelop.Ide/MonoDevelop.Components/PangoCairoHelper.cs
  M main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/GLibLogging.cs
  M main/src/tools/mdmonitor/MacIntegration/MacIntegration.cs

Modified: main/src/addins/MacPlatform/MacInterop/GtkQuartz.cs
===================================================================
@@ -34,6 +34,8 @@ namespace MonoDevelop.MacInterop
 {
 	public static class GtkQuartz
 	{
+		const string LIBQUARTZ = "libgtk-quartz-2.0.dylib";
+
 		//this may be needed to work around focusing issues in GTK/Cocoa interop
 		public static void FocusWindow (Gtk.Window widget)
 		{
@@ -79,10 +81,10 @@ public static NSView GetView (Gtk.Widget widget)
 			return MonoMac.ObjCRuntime.Runtime.GetNSObject (ptr) as NSView;
 		}
 		
-		[DllImport ("libgtk-quartz-2.0.dylib")]
+		[DllImport (LIBQUARTZ)]
 		static extern IntPtr gdk_quartz_window_get_nsview (IntPtr window);
 		
-		[DllImport ("libgtk-quartz-2.0.dylib")]
+		[DllImport (LIBQUARTZ)]
 		static extern IntPtr gdk_quartz_window_get_nswindow (IntPtr window);
 	}
 }

Modified: main/src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.Editor/GtkSpell.cs
===================================================================
@@ -36,22 +36,23 @@ namespace MonoDevelop.Gettext.Editor
 	// as GtkSpell sharp looks quite old and unmaintained, here is simple wrapper 
 	static class GtkSpell
 	{
+		const string LIBGTKSPELL = "libgtkspell";
 		static bool isSupported;
 		
 #region Native methods
-		[DllImport ("libgtkspell", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGTKSPELL, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr gtkspell_new_attach (IntPtr textView, string locale, IntPtr error);
 
-		[DllImport ("libgtkspell", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGTKSPELL, CallingConvention = CallingConvention.Cdecl)]
 		static extern void gtkspell_detach (IntPtr ptr);
 
-		[DllImport ("libgtkspell", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGTKSPELL, CallingConvention = CallingConvention.Cdecl)]
 		static extern void gtkspell_recheck_all (IntPtr ptr);
 
-		[DllImport ("libgtkspell", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGTKSPELL, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr gtkspell_get_from_text_view (IntPtr textView);
 		
-//		[DllImport ("libgtkspell")]
+//		[DllImport (LIBGTKSPELL)]
 //		static extern bool gtkspell_set_language (IntPtr spell, string lang, IntPtr error);
 #endregion
 		

Modified: main/src/addins/MonoDevelop.GtkCore/libstetic/GladeUtils.cs
===================================================================
@@ -11,6 +11,9 @@ namespace Stetic {
 	public static class GladeUtils {
 
 		public const string Glade20SystemId = "http://glade.gnome.org/glade-2.0.dtd";
+		const string LIBGOBJ = "libgobject-2.0-0.dll";
+		const string LIBGLIBGLUE = "glibsharpglue-2";
+		const string LIBGTK = "libgtk-win32-2.0-0.dll";
 
 		static Gdk.Atom gladeAtom;
 		public static Gdk.Atom ApplicationXGladeAtom {
@@ -749,40 +752,40 @@ static public void GetSignals (ObjectWrapper wrapper, XmlElement parent_elem)
 			}
 		}
 
-		[DllImport ("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr g_type_fundamental (IntPtr gtype);
 
-		[DllImport ("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr g_type_class_ref (IntPtr gtype);
 
-		[DllImport ("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr g_type_class_unref (IntPtr klass);
 
-		[DllImport ("glibsharpglue-2", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGLIBGLUE, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr gtksharp_object_newv (IntPtr gtype, int n_params, string[] names, GLib.Value[] vals);
 
-		[DllImport ("libgtk-win32-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGTK, CallingConvention = CallingConvention.Cdecl)]
 		static extern void gtk_object_sink (IntPtr raw);
 
-		[DllImport ("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern void g_object_get_property (IntPtr obj, string name, ref GLib.Value val);
 
-		[DllImport ("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern void g_object_set_property (IntPtr obj, string name, ref GLib.Value val);
 
-		[DllImport ("libgtk-win32-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGTK, CallingConvention = CallingConvention.Cdecl)]
 		static extern void gtk_container_child_get_property (IntPtr parent, IntPtr child, string name, ref GLib.Value val);
 
-		[DllImport ("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr g_enum_get_value_by_name (IntPtr enum_class, string name);
 
-		[DllImport ("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr g_enum_get_value (IntPtr enum_class, int val);
 
-		[DllImport ("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr g_flags_get_value_by_name (IntPtr flags_class, string nick);
 
-		[DllImport ("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr g_flags_get_first_value (IntPtr flags_class, uint val);
 	}
 }

Modified: main/src/addins/MonoDevelop.GtkCore/libstetic/ParamSpec.cs
===================================================================
@@ -7,6 +7,7 @@
 namespace Stetic {
 
 	public class ParamSpec : IDisposable {
+		const string LIBGOBJ = "libgobject-2.0-0.dll";
 		IntPtr _obj;
 
 		public ParamSpec (IntPtr raw)
@@ -199,31 +200,31 @@ public static ParamSpec LookupChildProperty (Type type, string name)
 			return pspec;
 		}
 
-		[DllImport("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport(LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern void g_param_spec_ref (IntPtr obj);
 
-		[DllImport("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport(LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern void g_param_spec_unref (IntPtr obj);
 
-		[DllImport("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport(LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern void g_param_spec_sink (IntPtr obj);
 
-		[DllImport("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport(LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr g_param_spec_get_name (IntPtr obj);
 
-		[DllImport("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport(LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr g_param_spec_get_nick (IntPtr obj);
 
-		[DllImport("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport(LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr g_param_spec_get_blurb (IntPtr obj);
 
-		[DllImport("libgobject-2.0-0.dll", CallingConvention=CallingConvention.Cdecl)]
+		[DllImport(LIBGOBJ, CallingConvention=CallingConvention.Cdecl)]
 		static extern bool g_param_value_defaults (IntPtr obj, ref GLib.Value value);
 
-		[DllImport("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport(LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr g_type_class_ref (IntPtr gtype);
 
-		[DllImport("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport(LIBGOBJ, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr g_object_class_find_property (IntPtr klass, string name);
 
 		[DllImport("libgtk-win32-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]

Modified: main/src/addins/MonoDevelop.GtkCore/libsteticui/Metacity/Preview.cs
===================================================================
@@ -10,6 +10,7 @@ namespace Stetic.Metacity {
 
 	internal class Preview : Gtk.Bin
 	{
+		const string LIBMETACITY = "libmetacity-private.so.0";
 		static Theme theme;
 		public static bool ThemeError = false;
 			
@@ -123,7 +124,7 @@ static Theme GetTheme ()
 		protected Preview(GLib.GType gtype) : base(gtype) {}
 		public Preview(IntPtr raw) : base(raw) {}
 
-		[DllImport("libmetacity-private.so.0")]
+		[DllImport(LIBMETACITY)]
 		static extern IntPtr meta_preview_new();
 
 		public Preview () : base (IntPtr.Zero)
@@ -135,7 +136,7 @@ public Preview () : base (IntPtr.Zero)
 			Raw = meta_preview_new();
 		}
 
-		[DllImport("libmetacity-private.so.0")]
+		[DllImport(LIBMETACITY)]
 		static extern void meta_preview_set_title(IntPtr raw, IntPtr title);
 
 		public string Title {
@@ -146,7 +147,7 @@ public Preview () : base (IntPtr.Zero)
 			}
 		}
 
-		[DllImport("libmetacity-private.so.0")]
+		[DllImport(LIBMETACITY)]
 		static extern void meta_preview_set_button_layout(IntPtr raw, ref Stetic.Metacity.ButtonLayout button_layout);
 
 		public Stetic.Metacity.ButtonLayout ButtonLayout
@@ -156,7 +157,7 @@ public Stetic.Metacity.ButtonLayout ButtonLayout
 			}
 		}
 
-		[DllImport("libmetacity-private.so.0")]
+		[DllImport(LIBMETACITY)]
 		static extern void meta_preview_set_theme(IntPtr raw, IntPtr theme);
 
 		public Metacity.Theme Theme {
@@ -165,7 +166,7 @@ public Stetic.Metacity.ButtonLayout ButtonLayout
 			}
 		}
 
-		[DllImport("libmetacity-private.so.0")]
+		[DllImport(LIBMETACITY)]
 		static extern IntPtr meta_preview_get_mini_icon();
 
 		public static Gdk.Pixbuf MiniIcon { 
@@ -176,7 +177,7 @@ public Stetic.Metacity.ButtonLayout ButtonLayout
 			}
 		}
 
-		[DllImport("libmetacity-private.so.0")]
+		[DllImport(LIBMETACITY)]
 		static extern IntPtr meta_preview_get_icon();
 
 		public static Gdk.Pixbuf Icon { 
@@ -187,7 +188,7 @@ public Stetic.Metacity.ButtonLayout ButtonLayout
 			}
 		}
 
-		[DllImport("libmetacity-private.so.0")]
+		[DllImport(LIBMETACITY)]
 		static extern void meta_preview_set_frame_type(IntPtr raw, int type);
 
 		public Stetic.Metacity.FrameType FrameType
@@ -197,7 +198,7 @@ public Stetic.Metacity.FrameType FrameType
 			}
 		}
 
-		[DllImport("libmetacity-private.so.0")]
+		[DllImport(LIBMETACITY)]
 		static extern IntPtr meta_preview_get_type();
 
 		public static new GLib.GType GType { 
@@ -208,7 +209,7 @@ public Stetic.Metacity.FrameType FrameType
 			}
 		}
 
-		[DllImport("libmetacity-private.so.0")]
+		[DllImport(LIBMETACITY)]
 		static extern void meta_preview_set_frame_flags(IntPtr raw, int flags);
 
 		public Stetic.Metacity.FrameFlags FrameFlags

Modified: main/src/addins/MonoDevelop.GtkCore/libsteticui/Windows/WindowsTheme.cs
===================================================================
@@ -7,6 +7,11 @@ namespace Stetic.Windows
 {
 	class WindowsTheme
 	{
+		const string USER32 = "user32.dll";
+		const string GDI32 = "gdi32.dll";
+		const string LIBGDK = "libgdk-win32-2.0-0.dll";
+		const string UXTHEME = "uxtheme";
+		const string LIBUXTHEME = "uxtheme.dll";
 		IntPtr hWnd;
 		IntPtr hTheme;
 
@@ -83,56 +88,56 @@ public Gdk.Rectangle GetWindowClientArea (Gdk.Rectangle allocation)
 		const int DT_SINGLELINE = 0x20;
 		
 
-		[DllImport ("uxtheme", ExactSpelling = true)]
+		[DllImport (UXTHEME, ExactSpelling = true)]
 		extern static Int32 DrawThemeBackground (IntPtr hTheme, IntPtr hdc, int iPartId,
 		   int iStateId, ref RECT pRect, ref RECT pClipRect);
 
-		[DllImport ("uxtheme.dll", ExactSpelling = true, CharSet = CharSet.Unicode)]
+		[DllImport (LIBUXTHEME, ExactSpelling = true, CharSet = CharSet.Unicode)]
 		static extern IntPtr OpenThemeData (IntPtr hWnd, String classList);
 
-		[DllImport ("uxtheme.dll", ExactSpelling = true)]
+		[DllImport (LIBUXTHEME, ExactSpelling = true)]
 		extern static Int32 CloseThemeData (IntPtr hTheme);
 
-		[DllImport ("uxtheme", ExactSpelling = true)]
+		[DllImport (UXTHEME, ExactSpelling = true)]
 		extern static Int32 GetThemePartSize (IntPtr hTheme, IntPtr hdc, int part, int state, ref RECT pRect, int eSize, out SIZE size);
 
-		[DllImport ("uxtheme", ExactSpelling = true)]
+		[DllImport (UXTHEME, ExactSpelling = true)]
 		extern static Int32 GetThemeBackgroundExtent (IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId, ref RECT pBoundingRect, out RECT pContentRect);
 
-		[DllImport ("uxtheme", ExactSpelling = true)]
+		[DllImport (UXTHEME, ExactSpelling = true)]
 		extern static Int32 GetThemeMargins (IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId, int iPropId, out MARGINS pMargins);
 
-		[DllImport ("uxtheme", ExactSpelling = true, CharSet = CharSet.Unicode)]
+		[DllImport (UXTHEME, ExactSpelling = true, CharSet = CharSet.Unicode)]
 		extern static Int32 DrawThemeText (IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId, String text, int textLength, UInt32 textFlags, UInt32 textFlags2, ref RECT pRect);
 
-		[DllImport ("uxtheme", ExactSpelling = true, CharSet = CharSet.Unicode)]
+		[DllImport (UXTHEME, ExactSpelling = true, CharSet = CharSet.Unicode)]
 		extern static Int32 GetThemeSysFont (IntPtr hTheme, int iFontId, ref LOGFONT plf);
 
-		[DllImport ("gdi32.dll")]
+		[DllImport (GDI32)]
 		static extern IntPtr CreateFontIndirect ([In] ref LOGFONT lplf);
 
-		[DllImport ("gdi32.dll")]
+		[DllImport (GDI32)]
 		static extern int SetBkMode (IntPtr hdc, int iBkMode);
 	
-		[DllImport ("gdi32.dll", ExactSpelling = true, PreserveSig = true, SetLastError = true)]
+		[DllImport (GDI32, ExactSpelling = true, PreserveSig = true, SetLastError = true)]
 		static extern IntPtr SelectObject (IntPtr hdc, IntPtr hgdiobj);
 
-		[DllImport ("gdi32.dll")]
+		[DllImport (GDI32)]
 		static extern bool DeleteObject (IntPtr hObject);
 	
-		[DllImport ("user32.dll")]
+		[DllImport (USER32)]
 		static extern IntPtr GetDC (IntPtr hWnd);
 
-		[DllImport ("user32.dll")]
+		[DllImport (USER32)]
 		static extern int ReleaseDC (IntPtr hWnd, IntPtr hDC);
 
-		[DllImport ("libgdk-win32-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGDK, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr gdk_win32_drawable_get_handle (IntPtr raw);
 
-		[DllImport ("libgdk-win32-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGDK, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr gdk_win32_hdc_get (IntPtr drawable, IntPtr gc, int usage);
 
-		[DllImport ("libgdk-win32-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGDK, CallingConvention = CallingConvention.Cdecl)]
 		static extern void gdk_win32_hdc_release (IntPtr drawable, IntPtr gc, int usage);
 	}
 

Modified: main/src/addins/WindowsPlatform/GdkWin32.cs
===================================================================
@@ -32,27 +32,29 @@
 using System.Runtime.InteropServices;
 using System.Windows.Forms;
 using Microsoft.WindowsAPICodePack.Dialogs;
-using MonoDevelop.Core;
+using MonoDevelop.Core;
+using CustomControls.OS;
 
 namespace MonoDevelop.Platform
 {
 	public static class GdkWin32
 	{
 		static readonly uint GotGdkEventsMessage = RegisterWindowMessage ("GDK_WIN32_GOT_EVENTS");
+		internal const string LIBGDK = "libgdk-win32-2.0-0.dll";
 
-		[DllImport ("libgdk-win32-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGDK, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr gdk_win32_drawable_get_handle (IntPtr drawable);
 
-		[DllImport ("libgdk-win32-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGDK, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr gdk_win32_hdc_get (IntPtr drawable, IntPtr gc, int usage);
 
-		[DllImport ("libgdk-win32-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGDK, CallingConvention = CallingConvention.Cdecl)]
 		static extern void gdk_win32_hdc_release (IntPtr drawable, IntPtr gc, int usage);
 
-		[DllImport ("libgdk-win32-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGDK, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr gdk_win32_set_modal_dialog_libgtk_only (IntPtr window);
 
-		[DllImport ("User32.dll", SetLastError=true, CharSet=CharSet.Auto)]
+		[DllImport (Win32.USER32, SetLastError=true, CharSet=CharSet.Auto)]
 		static extern uint RegisterWindowMessage (string lpString);
 
 		public static IntPtr HgdiobjGet (Gdk.Drawable drawable)
@@ -191,7 +193,7 @@ static void ClearGtkDialogHook (IntPtr hdlg)
 		static readonly WindowProc GtkWindowProcDelegate = GtkWindowProc;
 		static readonly int DWLP_DLGPROC = IntPtr.Size; // DWLP_MSGRESULT + sizeof(LRESULT);
 
-		[DllImport("user32.dll")]
+		[DllImport(Win32.USER32)]
 		static extern IntPtr CallWindowProc (IntPtr lpPrevWndFunc, IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
 
 		static IntPtr SetWindowLongPtr (IntPtr hWnd, int nIndex, IntPtr dwNewLong)
@@ -201,10 +203,10 @@ static IntPtr SetWindowLongPtr (IntPtr hWnd, int nIndex, IntPtr dwNewLong)
 			return SetWindowLongPtr64 (hWnd, nIndex, dwNewLong);
 		}
 
-		[DllImport ("user32.dll", EntryPoint="SetWindowLongPtr")]
+		[DllImport (Win32.USER32, EntryPoint="SetWindowLongPtr")]
 		static extern IntPtr SetWindowLongPtr64 (IntPtr hWnd, int nIndex, IntPtr dwNewLong);
 
-		[DllImport("user32.dll", EntryPoint="SetWindowLong")]
+		[DllImport(Win32.USER32, EntryPoint="SetWindowLong")]
 		static extern IntPtr SetWindowLongPtr32 (IntPtr hWnd, int nIndex, IntPtr dwNewLong);
 
 		static IntPtr GetWindowLongPtr (IntPtr hWnd, int nIndex)
@@ -214,10 +216,10 @@ static IntPtr GetWindowLongPtr (IntPtr hWnd, int nIndex)
 			return GetWindowLongPtr64 (hWnd, nIndex);
 		}
 
-		[DllImport ("user32.dll", EntryPoint="GetWindowLongPtr")]
+		[DllImport (Win32.USER32, EntryPoint="GetWindowLongPtr")]
 		static extern IntPtr GetWindowLongPtr64 (IntPtr hWnd, int nIndex);
 
-		[DllImport("user32.dll", EntryPoint="GetWindowLong")]
+		[DllImport(Win32.USER32, EntryPoint="GetWindowLong")]
 		static extern IntPtr GetWindowLongPtr32 (IntPtr hWnd, int nIndex);
 
 		delegate IntPtr WindowProc (IntPtr hdlg, uint uiMsg, IntPtr wParam, IntPtr lParam);

Modified: main/src/addins/WindowsPlatform/RecentFiles.cs
===================================================================
@@ -29,6 +29,7 @@
 using MonoDevelop.Core;
 using MonoDevelop.Ide.Desktop;
 using System.Collections.Generic;
+using CustomControls.OS;
 
 namespace MonoDevelop.Platform
 {
@@ -52,10 +53,10 @@ public override void AddProject (string fileName, string displayName)
 			base.AddProject (fileName, displayName);
 		}
 		
-		[DllImport ("Shell32.dll", CharSet = CharSet.Unicode)]
+		[DllImport (Win32.SHELL32, CharSet = CharSet.Unicode)]
 		static extern void SHAddToRecentDocs (SHARD uFlags, string pv);
 		
-		[DllImport ("Shell32.dll", CharSet = CharSet.Unicode)]
+		[DllImport (Win32.SHELL32, CharSet = CharSet.Unicode)]
 		static extern void SHAddToRecentDocs (SHARD uFlags, IntPtr pv);
 		
 		enum SHARD : uint


Modified: main/src/addins/WindowsPlatform/Win32.cs
===================================================================
@@ -34,65 +34,67 @@ public static class Win32
         public const uint SHGFI_TYPENAME = 0x400;
         public const uint SHGFI_USEFILEATTRIBUTES = 0x10;
         public const uint FILE_ATTRIBUTES_NORMAL = 0x80;
+        internal const string USER32 = "user32.dll";
+        internal const string SHELL32 = "shell32.dll";
 
         #region Delegates
         public delegate bool EnumWindowsCallBack(IntPtr hWnd, int lParam);
         #endregion
 
         #region USER32
-        [DllImport("user32.dll", CharSet = CharSet.Auto)]
+        [DllImport(Win32.USER32, CharSet = CharSet.Auto)]
         public static extern IntPtr GetParent(IntPtr hWnd);
-        [DllImport("User32.Dll")]
+        [DllImport(Win32.USER32)]
         public static extern int GetDlgCtrlID(IntPtr hWndCtl);
-        [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
+        [DllImport(Win32.USER32, CharSet = CharSet.Auto, ExactSpelling = true)]
         public static extern int MapWindowPoints(IntPtr hWnd, IntPtr hWndTo, ref POINT pt, int cPoints);
-        [DllImport("user32.dll", SetLastError = true)]
+        [DllImport(Win32.USER32, SetLastError = true)]
         public static extern bool GetWindowInfo(IntPtr hwnd, out WINDOWINFO pwi);
-        [DllImport("User32.Dll")]
+        [DllImport(Win32.USER32)]
         public static extern void GetWindowText(IntPtr hWnd, StringBuilder param, int length);
-        [DllImport("User32.Dll")]
+        [DllImport(Win32.USER32)]
         public static extern void GetClassName(IntPtr hWnd, StringBuilder param, int length);
-        [DllImport("user32.Dll")]
+        [DllImport(Win32.USER32)]
         public static extern bool EnumChildWindows(IntPtr hWndParent, EnumWindowsCallBack lpEnumFunc, int lParam);
-        [DllImport("user32.Dll")]
+        [DllImport(Win32.USER32)]
         public static extern bool EnumWindows(EnumWindowsCallBack lpEnumFunc, int lParam);
-        [DllImport("User32.dll", CharSet = CharSet.Auto)]
+        [DllImport(Win32.USER32, CharSet = CharSet.Auto)]
         public static extern bool ReleaseCapture();
-        [DllImport("user32.dll", CharSet = CharSet.Auto)]
+        [DllImport(Win32.USER32, CharSet = CharSet.Auto)]
         public static extern IntPtr SetCapture(IntPtr hWnd);
-        [DllImport("user32.dll", CharSet = CharSet.Auto)]
+        [DllImport(Win32.USER32, CharSet = CharSet.Auto)]
         public static extern IntPtr ChildWindowFromPointEx(IntPtr hParent, POINT pt, ChildFromPointFlags flags);
-        [DllImport("user32.dll", EntryPoint = "FindWindowExA", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
+        [DllImport(Win32.USER32, EntryPoint = "FindWindowExA", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
         public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
-        [DllImport("user32.dll")]
+        [DllImport(Win32.USER32)]
         public static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
-        [DllImport("user32.dll", CharSet = CharSet.Auto)]
+        [DllImport(Win32.USER32, CharSet = CharSet.Auto)]
         public static extern int PostMessage(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam);
-        [DllImport("user32.dll", CharSet = CharSet.Auto)]
+        [DllImport(Win32.USER32, CharSet = CharSet.Auto)]
         public static extern int PostMessage(IntPtr hWnd, int msg, int wParam, int lParam);
-        [DllImport("user32.dll", CharSet = CharSet.Auto)]
+        [DllImport(Win32.USER32, CharSet = CharSet.Auto)]
         public static extern int SendMessage(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam);
-        [DllImport("user32.dll", CharSet = CharSet.Auto)]
+        [DllImport(Win32.USER32, CharSet = CharSet.Auto)]
         public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);
-        [DllImport("user32.dll", CharSet = CharSet.Auto)]
+        [DllImport(Win32.USER32, CharSet = CharSet.Auto)]
         public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, StringBuilder param);
-        [DllImport("user32.dll", CharSet = CharSet.Auto)]
+        [DllImport(Win32.USER32, CharSet = CharSet.Auto)]
         public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, char[] chars);
-        [DllImport("user32.dll", CharSet = CharSet.Auto)]
+        [DllImport(Win32.USER32, CharSet = CharSet.Auto)]
         public static extern IntPtr BeginDeferWindowPos(int nNumWindows);
-        [DllImport("user32.dll", CharSet = CharSet.Auto)]
+        [DllImport(Win32.USER32, CharSet = CharSet.Auto)]
         public static extern IntPtr DeferWindowPos(IntPtr hWinPosInfo, IntPtr hWnd, IntPtr hWndInsertAfter, int x, int y, int Width, int Height, SetWindowPosFlags flags);
-        [DllImport("user32.dll", CharSet = CharSet.Auto)]
+        [DllImport(Win32.USER32, CharSet = CharSet.Auto)]
         public static extern bool EndDeferWindowPos(IntPtr hWinPosInfo);
-        [DllImport("user32.dll", CharSet = CharSet.Auto)]
+        [DllImport(Win32.USER32, CharSet = CharSet.Auto)]
         public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int x, int y, int Width, int Height, SetWindowPosFlags flags);
-        [DllImport("user32.dll")]
+        [DllImport(Win32.USER32)]
         public static extern bool GetWindowRect(IntPtr hwnd, ref RECT rect);
-        [DllImport("user32.dll")]
+        [DllImport(Win32.USER32)]
         public static extern bool GetClientRect(IntPtr hwnd, ref RECT rect);
-        [DllImport("user32.dll")]
+        [DllImport(Win32.USER32)]
         public static extern bool DestroyIcon([In] IntPtr hIcon);
-        [DllImport("shell32.dll", CharSet = CharSet.Unicode)]
+        [DllImport(Win32.SHELL32, CharSet = CharSet.Unicode)]
         public static extern IntPtr SHGetFileInfoW([In] string pszPath, uint dwFileAttributes, [In, Out] ref SHFILEINFO psfi, uint cbSizeFileInfo, uint uFlags);
         #endregion
     }


Modified: main/src/addins/WindowsPlatform/WindowsPlatform.cs
===================================================================
@@ -163,10 +163,10 @@ unsafe struct MonitorInfo {
 		[UnmanagedFunctionPointer (CallingConvention.Winapi)]
 		delegate int EnumMonitorsCallback (IntPtr hmonitor, IntPtr hdc, IntPtr prect, IntPtr user_data);
 
-		[DllImport ("User32.dll")]
+		[DllImport (Win32.USER32)]
 		extern static int EnumDisplayMonitors (IntPtr hdc, IntPtr clip, EnumMonitorsCallback callback, IntPtr user_data);
 
-		[DllImport ("User32.dll")]
+		[DllImport (Win32.USER32)]
 		extern static int GetMonitorInfoA (IntPtr hmonitor, ref MonitorInfo info);
 
 		public override Gdk.Rectangle GetUsableMonitorGeometry (Gdk.Screen screen, int monitor_id)

Modified: main/src/addins/WindowsPlatform/WindowsProxyCredentialProvider.cs
===================================================================
@@ -148,27 +148,30 @@ public override DialogResult ShowMagicDialog ()
 
 	static class Native
 	{
-		[DllImport ("ole32.dll")]
+		const string OLE32 = "ole32.dll";
+		const string CREDUI = "credui.dll";
+
+		[DllImport (OLE32)]
 		internal static extern void CoTaskMemFree (IntPtr ptr);
 
-		[DllImport ("credui.dll")]
+		[DllImport (CREDUI)]
 		internal static extern CredUiReturnCodes CredUIPromptForCredentials (ref CredentialUiInfo uiInfo, string targetName,
 			IntPtr reserved1, int iError, StringBuilder userName, int maxUserName, StringBuilder password, int maxPassword,
 			[MarshalAs (UnmanagedType.Bool)] ref bool pfSave, CredentialsUiFlags windowsFlags);
 
-		[DllImport ("credui.dll", CharSet = CharSet.Unicode)]
+		[DllImport (CREDUI, CharSet = CharSet.Unicode)]
 		internal static extern WindowsCredentialPromptReturnCode CredUIPromptForWindowsCredentials (ref CredentialUiInfo uiInfo,
 			int authError, ref int authPackage, IntPtr inAuthBuffer, uint inAuthBufferSize,
 			out IntPtr refOutAuthBuffer, out int refOutAuthBufferSize, ref bool fSave,
 			CredentialsUiWindowsFlags uiWindowsFlags);
 
-		[DllImport ("credui.dll", CharSet = CharSet.Auto)]
+		[DllImport (CREDUI, CharSet = CharSet.Auto)]
 		internal static extern bool CredUnPackAuthenticationBuffer (int dwFlags, IntPtr pAuthBuffer,
 			int cbAuthBuffer, StringBuilder pszUserName, ref int pcchMaxUserName,
 			StringBuilder pszDomainName, ref int pcchMaxDomainame, StringBuilder pszPassword,
 			ref int pcchMaxPassword);
 
-		[DllImport ("credui.dll", CharSet = CharSet.Auto)]
+		[DllImport (CREDUI, CharSet = CharSet.Auto)]
 		internal static extern bool CredPackAuthenticationBuffer (int dwFlags, string pszUserName, string pszPassword,
 																  IntPtr packedCredentials, ref uint packedCredentialsLength);
 


Modified: main/src/addins/WindowsPlatform/WindowsSecureStoragePasswordProvider.cs
===================================================================
@@ -252,14 +252,16 @@ override protected bool ReleaseHandle ()
 
 	static class NativeMethods
 	{
-		[DllImport ("advapi32.dll", CharSet = CharSet.Unicode, SetLastError = true, EntryPoint = "CredWriteW")]
+		const string ADVAPI32 = "advapi32.dll";
+
+		[DllImport (ADVAPI32, CharSet = CharSet.Unicode, SetLastError = true, EntryPoint = "CredWriteW")]
 		internal static extern bool CredWrite ([In] ref NativeCredential credential, [In] uint flags);
 
-		[DllImport ("advapi32.dll", CharSet = CharSet.Unicode, SetLastError = true, EntryPoint = "CredReadW")]
+		[DllImport (ADVAPI32, CharSet = CharSet.Unicode, SetLastError = true, EntryPoint = "CredReadW")]
 		internal static extern bool CredRead (string targetName, NativeCredentialType type, CredentialFlags flags,
 			out IntPtr credential);
 
-		[DllImport ("advapi32.dll", CharSet = CharSet.Unicode, EntryPoint = "CredFree")]
+		[DllImport (ADVAPI32, CharSet = CharSet.Unicode, EntryPoint = "CredFree")]
 		internal static extern bool CredFree ([In] IntPtr cred);
 	}
 }


Modified: main/src/core/Mono.Texteditor/Mono.TextEditor/Gui/GtkWorkarounds.cs
===================================================================
@@ -37,6 +37,7 @@ namespace Mono.TextEditor
 	public static class GtkWorkarounds
 	{
 		const string LIBOBJC ="/usr/lib/libobjc.dylib";
+		const string USER32DLL = "User32.dll";
 		
 		[DllImport (LIBOBJC, EntryPoint = "sel_registerName")]
 		static extern IntPtr sel_registerName (string selector);
@@ -71,7 +72,7 @@ public static class GtkWorkarounds
 		[DllImport (LIBOBJC, EntryPoint = "objc_msgSend_stret")]
 		static extern void objc_msgSend_CGRect64 (out CGRect64 rect, IntPtr klass, IntPtr selector);
 		
-		[DllImport ("libgtk-quartz-2.0.dylib")]
+		[DllImport (PangoUtil.LIBQUARTZ)]
 		static extern IntPtr gdk_quartz_window_get_nswindow (IntPtr window);
 
 		struct CGRect32
@@ -259,10 +260,10 @@ unsafe struct MonitorInfo {
 		[UnmanagedFunctionPointer (CallingConvention.Winapi)]
 		delegate int EnumMonitorsCallback (IntPtr hmonitor, IntPtr hdc, IntPtr prect, IntPtr user_data);
 
-		[DllImport ("User32.dll")]
+		[DllImport (USER32DLL)]
 		extern static int EnumDisplayMonitors (IntPtr hdc, IntPtr clip, EnumMonitorsCallback callback, IntPtr user_data);
 
-		[DllImport ("User32.dll")]
+		[DllImport (USER32DLL)]
 		extern static int GetMonitorInfoA (IntPtr hmonitor, ref MonitorInfo info);
 
 		static Gdk.Rectangle WindowsGetUsableMonitorGeometry (Gdk.Screen screen, int monitor_id)
@@ -735,7 +736,7 @@ public static void MapRawKeys (Gdk.EventKey evt, out Gdk.Key key, out Gdk.Modifi
 			mod = accels[0].Modifier;
 		}
 
-		[System.Runtime.InteropServices.DllImport ("libgdk-win32-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[System.Runtime.InteropServices.DllImport (PangoUtil.LIBGDK, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr gdk_win32_drawable_get_handle (IntPtr drawable);
 		
 		enum DwmWindowAttribute
@@ -774,7 +775,7 @@ public Win32Rect (int left, int top, int right, int bottom)
 		[DllImport ("dwmapi.dll")]
 		static extern int DwmIsCompositionEnabled (out bool enabled);
 		
-		[DllImport ("User32.dll")]
+		[DllImport (USER32DLL)]
 		static extern bool GetWindowRect (IntPtr hwnd, out Win32Rect rect);
 		
 		public static void SetImCursorLocation (Gtk.IMContext ctx, Gdk.Window clientWindow, Gdk.Rectangle cursor)
@@ -832,7 +833,7 @@ public static void UpdateNativeShadow (Gtk.Window window)
 			objc_msgSend_IntPtr (ptr, sel_invalidateShadow);
 		}
 
-		[DllImport ("gtksharpglue-2", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (PangoUtil.LIBGTKGLUE, CallingConvention = CallingConvention.Cdecl)]
 		static extern void gtksharp_container_leak_fixed_marker ();
 
 		static HashSet<Type> fixedContainerTypes;
@@ -984,7 +985,7 @@ static ForallDelegate CreateForallCallback (IntPtr gtype)
 		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
 		delegate void ForallDelegate (IntPtr container, bool include_internals, IntPtr cb, IntPtr data);
 		
-		[DllImport("gtksharpglue-2", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport(PangoUtil.LIBGTKGLUE, CallingConvention = CallingConvention.Cdecl)]
 		static extern void gtksharp_container_override_forall (IntPtr gtype, ForallDelegate cb);
 
 		public static string MarkupLinks (string text)
@@ -1037,10 +1038,10 @@ class ActivateLinkEventArgs : GLib.SignalArgs
 
 		static bool canSetOverlayScrollbarPolicy = true;
 
-		[DllImport ("libgtk-quartz-2.0.dylib")]
+		[DllImport (PangoUtil.LIBQUARTZ)]
 		static extern void gtk_scrolled_window_set_overlay_policy (IntPtr sw, Gtk.PolicyType hpolicy, Gtk.PolicyType vpolicy);
 
-		[DllImport ("libgtk-quartz-2.0.dylib")]
+		[DllImport (PangoUtil.LIBQUARTZ)]
 		static extern void gtk_scrolled_window_get_overlay_policy (IntPtr sw, out Gtk.PolicyType hpolicy, out Gtk.PolicyType vpolicy);
 
 		public static void SetOverlayScrollbarPolicy (Gtk.ScrolledWindow sw, Gtk.PolicyType hpolicy, Gtk.PolicyType vpolicy)
@@ -1072,7 +1073,7 @@ public static void GetOverlayScrollbarPolicy (Gtk.ScrolledWindow sw, out Gtk.Pol
 			canSetOverlayScrollbarPolicy = false;
 		}
 
-		[DllImport ("libgtk-win32-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (PangoUtil.LIBGTK, CallingConvention = CallingConvention.Cdecl)]
 		static extern bool gtk_tree_view_get_tooltip_context (IntPtr raw, ref int x, ref int y, bool keyboard_tip, out IntPtr model, out IntPtr path, IntPtr iter);
 
 		//the GTK# version of this has 'out' instead of 'ref', preventing passing the x,y values in
@@ -1092,10 +1093,10 @@ public static void GetOverlayScrollbarPolicy (Gtk.ScrolledWindow sw, out Gtk.Pol
 		
 		static bool supportsHiResIcons = false; // Disabled for now
 
-		[DllImport ("libgtk-quartz-2.0.dylib")]
+		[DllImport (PangoUtil.LIBQUARTZ)]
 		static extern void gtk_icon_source_set_scale (IntPtr source, double scale);
 		
-		[DllImport ("libgtk-quartz-2.0.dylib")]
+		[DllImport (PangoUtil.LIBQUARTZ)]
 		static extern void gtk_icon_source_set_scale_wildcarded (IntPtr source, bool setting);
 		
 		[DllImport (PangoUtil.LIBGTK)]

Modified: main/src/core/Mono.Texteditor/Mono.TextEditor/Gui/PangoUtil.cs
===================================================================
@@ -39,6 +39,8 @@ public static class PangoUtil
 		internal const string LIBGOBJECT      = "libgobject-2.0-0.dll";
 		internal const string LIBPANGO        = "libpango-1.0-0.dll";
 		internal const string LIBPANGOCAIRO   = "libpangocairo-1.0-0.dll";
+		internal const string LIBQUARTZ       = "libgtk-quartz-2.0.dylib";
+		internal const string LIBGTKGLUE      = "gtksharpglue-2";
 		
 		/// <summary>
 		/// This doesn't leak Pango layouts, unlike some other ways to create them in GTK# &lt;= 2.12.11

Modified: main/src/core/Mono.Texteditor/Mono.TextEditor/HelperMethods.cs
===================================================================
@@ -69,7 +69,7 @@ public static IEnumerable<TextSegment> AdjustSegments (this IEnumerable<TextSegm
 		}
 		
 		
-		[DllImport("libpangocairo-1.0-0.dll", CallingConvention=CallingConvention.Cdecl)]
+		[DllImport(PangoUtil.LIBPANGOCAIRO, CallingConvention=CallingConvention.Cdecl)]
 		static extern void pango_cairo_show_layout (IntPtr cr, IntPtr layout);
 
 		public static void ShowLayout (this Cairo.Context cr, Pango.Layout layout)
@@ -77,7 +77,7 @@ public static void ShowLayout (this Cairo.Context cr, Pango.Layout layout)
 			pango_cairo_show_layout (cr == null ? IntPtr.Zero : cr.Handle, layout == null ? IntPtr.Zero : layout.Handle);
 		}
 
-		[DllImport("libpangocairo-1.0-0.dll", CallingConvention=CallingConvention.Cdecl)]
+		[DllImport(PangoUtil.LIBPANGOCAIRO, CallingConvention=CallingConvention.Cdecl)]
 		static extern IntPtr pango_cairo_create_layout (IntPtr cr);
 
 		public static Pango.Layout CreateLayout (this Cairo.Context cr)
@@ -86,7 +86,7 @@ public static Pango.Layout CreateLayout (this Cairo.Context cr)
 			return GLib.Object.GetObject (raw_ret) as Pango.Layout;
 		}
 
-		[DllImport("libpangocairo-1.0-0.dll", CallingConvention=CallingConvention.Cdecl)]
+		[DllImport(PangoUtil.LIBPANGOCAIRO, CallingConvention=CallingConvention.Cdecl)]
 		static extern void pango_cairo_layout_path (IntPtr cr, IntPtr layout);
 
 		public static void LayoutPath (this Cairo.Context cr, Pango.Layout layout)
@@ -94,7 +94,7 @@ public static void LayoutPath (this Cairo.Context cr, Pango.Layout layout)
 			pango_cairo_layout_path (cr == null ? IntPtr.Zero : cr.Handle, layout == null ? IntPtr.Zero : layout.Handle);
 		}
 
-		[DllImport("libpangocairo-1.0-0.dll", CallingConvention=CallingConvention.Cdecl)]
+		[DllImport(PangoUtil.LIBPANGOCAIRO, CallingConvention=CallingConvention.Cdecl)]
 		static extern void pango_cairo_context_set_resolution (IntPtr pango_context, double dpi);
 
 		public static void ContextSetResolution (this Pango.Context context, double dpi)
@@ -102,7 +102,7 @@ public static void ContextSetResolution (this Pango.Context context, double dpi)
 			pango_cairo_context_set_resolution (context == null ? IntPtr.Zero : context.Handle, dpi);
 		}
 
-		[DllImport("libpangocairo-1.0-0.dll", CallingConvention=CallingConvention.Cdecl)]
+		[DllImport(PangoUtil.LIBPANGOCAIRO, CallingConvention=CallingConvention.Cdecl)]
 		static extern IntPtr pango_layout_get_context (IntPtr layout);
 
 		public static string GetColorString (Gdk.Color color)

Modified: main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ProcessExtensions.cs
===================================================================
@@ -88,7 +88,7 @@ static IEnumerable<int> GetAllChildren (Dictionary<int,List<int>> procRelations,
 			return procRelations;
 		}
 
-		static uint TH32CS_SNAPPROCESS = 2;
+		const uint TH32CS_SNAPPROCESS = 2;
 
 		[StructLayout(LayoutKind.Sequential)]
 		public struct PROCESSENTRY32
@@ -106,13 +106,14 @@ public struct PROCESSENTRY32
 			public string szExeFile;
 		};
 	
-		[DllImport("kernel32.dll", SetLastError = true)]
+		const string kernel = "kernel32.dll";
+		[DllImport(kernel, SetLastError = true)]
 		static extern IntPtr CreateToolhelp32Snapshot (uint dwFlags, uint th32ProcessID);
 
-		[DllImport("kernel32.dll")]
+		[DllImport(kernel)]
 		static extern bool Process32First (IntPtr hSnapshot, ref PROCESSENTRY32 lppe);
 
-		[DllImport("kernel32.dll")]
+		[DllImport(kernel)]
 		static extern bool Process32Next (IntPtr hSnapshot, ref PROCESSENTRY32 lppe);
 	}
 }

Modified: main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Text/TextFile.cs
===================================================================
@@ -40,7 +40,9 @@
 namespace MonoDevelop.Projects.Text
 {
 	public class TextFile: IEditableTextFile
-	{
+	{
+		const string LIBGLIB = "libglib-2.0-0.dll";
+
 		FilePath name;
 		StringBuilder text;
 		string sourceEncoding;
@@ -235,16 +237,16 @@ static byte[] ConvertToBytes (byte[] content, long nread, string toEncoding, str
 				throw ex;
 			}
 		}
-		
-		[DllImport("libglib-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+			
+		[DllImport(LIBGLIB, CallingConvention = CallingConvention.Cdecl)]
 		//note: textLength is signed, read/written are not
 		static extern IntPtr g_convert(byte[] text, IntPtr textLength, string toCodeset, string fromCodeset, 
 		                               ref IntPtr read, ref IntPtr written, ref IntPtr err);
 		
-		[DllImport("libglib-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport(LIBGLIB, CallingConvention = CallingConvention.Cdecl)]
 		static extern void g_free (IntPtr ptr);
 		
-		[DllImport("libglib-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport(LIBGLIB, CallingConvention = CallingConvention.Cdecl)]
 		static extern void g_error_free (IntPtr err);
 		
 		#endregion

Modified: main/src/core/MonoDevelop.Ide/MonoDevelop.Components/CairoExtensions.cs
===================================================================
@@ -50,6 +50,7 @@ public enum CairoCorners
 
     public static class CairoExtensions
     {
+		internal const string LIBCAIRO = "libcairo-2.dll";
 		public static Cairo.Rectangle ToCairoRect (this Gdk.Rectangle rect)
 		{
 			return new Cairo.Rectangle (rect.X, rect.Y, rect.Width, rect.Height);
@@ -421,10 +422,10 @@ public static void RenderOuterShadow (this Cairo.Context self, Gdk.Rectangle are
 			}
 		}
 
-		[DllImport ("libcairo-2.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBCAIRO, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr cairo_pattern_set_extend(IntPtr pattern, CairoExtend extend);
 
-		[DllImport ("libcairo-2.dll", CallingConvention=CallingConvention.Cdecl)]
+		[DllImport (LIBCAIRO, CallingConvention=CallingConvention.Cdecl)]
 		internal static extern IntPtr cairo_get_source (IntPtr cr);
 
 		enum CairoExtend {
@@ -488,7 +489,7 @@ private static bool CallCairoMethod (Cairo.Context cr, ref CairoInteropCall call
 
         private static bool native_push_pop_exists = true;
 
-        [DllImport ("libcairo-2.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBCAIRO, CallingConvention = CallingConvention.Cdecl)]
         private static extern void cairo_push_group (IntPtr ptr);
         private static CairoInteropCall cairo_push_group_call = new CairoInteropCall ("PushGroup");
 
@@ -507,7 +508,7 @@ public static void PushGroup (Cairo.Context cr)
             }
         }
 
-		[DllImport ("libcairo-2.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBCAIRO, CallingConvention = CallingConvention.Cdecl)]
         private static extern void cairo_pop_group_to_source (IntPtr ptr);
         private static CairoInteropCall cairo_pop_group_to_source_call = new CairoInteropCall ("PopGroupToSource");
 
@@ -666,13 +667,13 @@ public class QuartzSurface : Cairo.Surface
 	{
 		const string CoreGraphics = "/System/Library/Frameworks/ApplicationServices.framework/Frameworks/CoreGraphics.framework/CoreGraphics";
 
-		[DllImport ("libcairo-2.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (CairoExtensions.LIBCAIRO, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr cairo_quartz_surface_create (Cairo.Format format, uint width, uint height);
 
-		[DllImport ("libcairo-2.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (CairoExtensions.LIBCAIRO, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr cairo_quartz_surface_get_cg_context (IntPtr surface);
 
-		[DllImport ("libcairo-2.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (CairoExtensions.LIBCAIRO, CallingConvention = CallingConvention.Cdecl)]
 		static extern IntPtr cairo_get_target (IntPtr context);
 
 		[DllImport (CoreGraphics, EntryPoint="CGContextConvertRectToDeviceSpace", CallingConvention = CallingConvention.Cdecl)]

Modified: main/src/core/MonoDevelop.Ide/MonoDevelop.Components/PangoCairoHelper.cs
===================================================================
@@ -33,7 +33,8 @@ namespace MonoDevelop.Components
 {
 	public static class PangoCairoHelper
 	{
-		[DllImport("libpangocairo-1.0-0.dll", CallingConvention=CallingConvention.Cdecl)]
+		const string LIBPANGOCAIRO = "libpangocairo-1.0-0.dll";
+		[DllImport(LIBPANGOCAIRO, CallingConvention=CallingConvention.Cdecl)]
 		private static extern void pango_cairo_show_layout (IntPtr cr, IntPtr layout);
 
 		public static void ShowLayout (Cairo.Context cr, Pango.Layout layout)
@@ -41,7 +42,7 @@ public static void ShowLayout (Cairo.Context cr, Pango.Layout layout)
 			pango_cairo_show_layout (cr == null ? IntPtr.Zero : cr.Handle, layout == null ? IntPtr.Zero : layout.Handle);
 		}
 
-		[DllImport("libpangocairo-1.0-0.dll", CallingConvention=CallingConvention.Cdecl)]
+		[DllImport(LIBPANGOCAIRO, CallingConvention=CallingConvention.Cdecl)]
 		private static extern IntPtr pango_cairo_create_layout (IntPtr cr);
 
 		public static Pango.Layout CreateLayout (Cairo.Context cr)
@@ -50,7 +51,7 @@ public static Pango.Layout CreateLayout (Cairo.Context cr)
 			return GLib.Object.GetObject (raw_ret) as Pango.Layout;
 		}
 
-		[DllImport("libpangocairo-1.0-0.dll", CallingConvention=CallingConvention.Cdecl)]
+		[DllImport(LIBPANGOCAIRO, CallingConvention=CallingConvention.Cdecl)]
 		private static extern void pango_cairo_layout_path (IntPtr cr, IntPtr layout);
 
 		public static void LayoutPath (Cairo.Context cr, Pango.Layout layout, bool iUnderstandThePerformanceImplications)
@@ -58,7 +59,7 @@ public static void LayoutPath (Cairo.Context cr, Pango.Layout layout, bool iUnde
 			pango_cairo_layout_path (cr == null ? IntPtr.Zero : cr.Handle, layout == null ? IntPtr.Zero : layout.Handle);
 		}
 
-		[DllImport("libpangocairo-1.0-0.dll", CallingConvention=CallingConvention.Cdecl)]
+		[DllImport(LIBPANGOCAIRO, CallingConvention=CallingConvention.Cdecl)]
 		private static extern void pango_cairo_context_set_resolution (IntPtr pango_context, double dpi);
 
 		public static void ContextSetResolution (Pango.Context context, double dpi)
@@ -66,7 +67,7 @@ public static void ContextSetResolution (Pango.Context context, double dpi)
 			pango_cairo_context_set_resolution (context == null ? IntPtr.Zero : context.Handle, dpi);
 		}
 
-		[DllImport("libpangocairo-1.0-0.dll", CallingConvention=CallingConvention.Cdecl)]
+		[DllImport(LIBPANGOCAIRO, CallingConvention=CallingConvention.Cdecl)]
 		private static extern IntPtr pango_layout_get_context (IntPtr layout);
 
 		public static string GetColorString (Gdk.Color color)

Modified: main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/GLibLogging.cs
===================================================================
@@ -72,7 +72,7 @@ public enum LogLevelFlags : int
 
 	public class Log
 	{
-
+		const string LIBGLIB = "libglib-2.0-0.dll";
 		static Hashtable handlers;
 
 		static void EnsureHash ()
@@ -81,7 +81,7 @@ static void EnsureHash ()
 				handlers = new Hashtable ();
 		}
 
-		[DllImport ("libglib-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGLIB, CallingConvention = CallingConvention.Cdecl)]
 		static extern void g_logv (IntPtr log_domain, LogLevelFlags flags, IntPtr message);
 
 		public void WriteLog (string logDomain, LogLevelFlags flags, string format, params object[] args)
@@ -93,7 +93,7 @@ public void WriteLog (string logDomain, LogLevelFlags flags, string format, para
 			GLib.Marshaller.Free (nmessage);
 		}
 
-		[DllImport ("libglib-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGLIB, CallingConvention = CallingConvention.Cdecl)]
 		static extern uint g_log_set_handler (IntPtr log_domain, LogLevelFlags flags, LogFunc2 log_func, LogFunc user_data);
 
 		static readonly LogFunc2 LogFuncTrampoline = (string domain, LogLevelFlags level, string message, LogFunc user_data) => {
@@ -111,7 +111,7 @@ public static uint SetLogHandler (string logDomain, LogLevelFlags flags, LogFunc
 			return result;
 		}
 
-		[DllImport ("libglib-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGLIB, CallingConvention = CallingConvention.Cdecl)]
 		static extern uint g_log_remove_handler (IntPtr log_domain, uint handler_id);
 
 		public static void RemoveLogHandler (string logDomain, uint handlerID)
@@ -125,7 +125,7 @@ public static void RemoveLogHandler (string logDomain, uint handlerID)
 		}
 
 
-		[DllImport ("libglib-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGLIB, CallingConvention = CallingConvention.Cdecl)]
 		static extern PrintFunc g_set_print_handler (PrintFunc handler);
 
 		public static PrintFunc SetPrintHandler (PrintFunc handler)
@@ -136,7 +136,7 @@ public static PrintFunc SetPrintHandler (PrintFunc handler)
 			return g_set_print_handler (handler);
 		}
 
-		[DllImport ("libglib-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGLIB, CallingConvention = CallingConvention.Cdecl)]
 		static extern PrintFunc g_set_printerr_handler (PrintFunc handler);
 
 		public static PrintFunc SetPrintErrorHandler (PrintFunc handler)
@@ -147,7 +147,7 @@ public static PrintFunc SetPrintErrorHandler (PrintFunc handler)
 			return g_set_printerr_handler (handler);
 		}
 
-		[DllImport ("libglib-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGLIB, CallingConvention = CallingConvention.Cdecl)]
 		static extern void g_log_default_handler (IntPtr log_domain, LogLevelFlags log_level, IntPtr message, IntPtr unused_data);
 
 		public static void DefaultHandler (string logDomain, LogLevelFlags logLevel, string message)
@@ -159,7 +159,7 @@ public static void DefaultHandler (string logDomain, LogLevelFlags logLevel, str
 			GLib.Marshaller.Free (nmess);
 		}
 
-		[DllImport ("libglib-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGLIB, CallingConvention = CallingConvention.Cdecl)]
 		extern static LogLevelFlags g_log_set_always_fatal (LogLevelFlags fatal_mask);
 
 		public static LogLevelFlags SetAlwaysFatal (LogLevelFlags fatalMask)
@@ -167,7 +167,7 @@ public static LogLevelFlags SetAlwaysFatal (LogLevelFlags fatalMask)
 			return g_log_set_always_fatal (fatalMask);
 		}
 
-		[DllImport ("libglib-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+		[DllImport (LIBGLIB, CallingConvention = CallingConvention.Cdecl)]
 		extern static LogLevelFlags g_log_set_fatal_mask (IntPtr log_domain, LogLevelFlags fatal_mask);
 
 		public static LogLevelFlags SetAlwaysFatal (string logDomain, LogLevelFlags fatalMask)


Modified: main/src/tools/mdmonitor/MacIntegration/MacIntegration.cs
===================================================================
@@ -31,9 +31,11 @@
 
 namespace MacIntegration
 {
-	public class IgeMacMenu
+	public static class IgeMacMenu
 	{
-		[DllImport("libigemacintegration.dylib")]
+		internal const string maclib = "libigemacintegration.dylib";
+
+		[DllImport(maclib)]
 		static extern void ige_mac_menu_connect_window_key_handler (IntPtr window);
 
 		public static void ConnectWindowKeyHandler (Gtk.Window window)
@@ -41,7 +43,7 @@ public static void ConnectWindowKeyHandler (Gtk.Window window)
 			ige_mac_menu_connect_window_key_handler (window.Handle);
 		}
 
-		[DllImport("libigemacintegration.dylib")]
+		[DllImport(maclib)]
 		static extern void ige_mac_menu_set_global_key_handler_enabled (bool enabled);
 
 		public static bool GlobalKeyHandlerEnabled {
@@ -50,7 +52,7 @@ public static void ConnectWindowKeyHandler (Gtk.Window window)
 			}
 		}
 
-		[DllImport("libigemacintegration.dylib")]
+		[DllImport(maclib)]
 		static extern void ige_mac_menu_set_menu_bar (IntPtr menu_shell);
 
 		public static Gtk.MenuShell MenuBar { 
@@ -59,7 +61,7 @@ public static void ConnectWindowKeyHandler (Gtk.Window window)
 			}
 		}
 
-		[DllImport("libigemacintegration.dylib")]
+		[DllImport(maclib)]
 		static extern void ige_mac_menu_set_quit_menu_item (IntPtr quit_item);
 
 		public static Gtk.MenuItem QuitMenuItem { 
@@ -68,7 +70,7 @@ public static void ConnectWindowKeyHandler (Gtk.Window window)
 			}
 		}
 
-		[DllImport("libigemacintegration.dylib")]
+		[DllImport(maclib)]
 		static extern IntPtr ige_mac_menu_add_app_menu_group ();
 
 		public static IgeMacMenuGroup AddAppMenuGroup ()
@@ -81,7 +83,7 @@ public static IgeMacMenuGroup AddAppMenuGroup ()
 
 	public class IgeMacMenuGroup : GLib.Opaque
 	{
-		[DllImport("libigemacintegration.dylib")]
+		[DllImport(IgeMacMenu.maclib)]
 		static extern void ige_mac_menu_add_app_menu_item (IntPtr raw, IntPtr menu_item, IntPtr label);
 
 		public void AddMenuItem (Gtk.MenuItem menu_item, string label)


_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches