# Included <span class="title-ref">plugins</span>

You can use optional <span class="title-ref">plugins</span> (also called external <span class="title-ref">plugins</span>) with your Xojo apps to add additional functionality in the form of classes or UI controls. These <span class="title-ref">plugins</span> are files that are copied to the <span class="title-ref">Plugins</span> folder and are then loaded the next time Xojo starts. By default, Xojo ships with these database <span class="title-ref">plugins</span> installed into the <span class="title-ref">Plugins</span> folder:

- MySQLCommunityPlugin for `MySQLCommunityServer</api/databases/mysqlcommunityserver>`
- ODBCPlugin for `ODBCDatabase</api/databases/odbcdatabase>`
- PostgreSQLPlugin for `PostgreSQLDatabase</api/databases/postgresqldatabase>`

You can remove any of the <span class="title-ref">plugins</span> you are not using in order to reduce start time and lower memory usage.

To use the Microsoft Office Automation classes, you will have to copy the MSOfficeAutomation plugin to the Plugin folder.

Many third-party developers also offer <span class="title-ref">plugins</span> for use with Xojo, which you can also copy to the <span class="title-ref">Plugins</span> folder to use with Xojo the next time it starts.

To see what <span class="title-ref">plugins</span> have been loaded by Xojo, go to the Help menu, select About Xojo and then click the "Loaded <span class="title-ref">Plugins</span>" tab where you'll see a list of loaded <span class="title-ref">plugins</span>.

Loading <span class="title-ref">plugins</span> takes additional startup time and uses additional memory even if you don't use them in your project, so it is best to only put the <span class="title-ref">plugins</span> you are actually using in the <span class="title-ref">Plugins</span> folder and not necessarily include every plugin you have.

Apps can use a plugin that contain 32-bit parts, but it must also have 64-bit parts in order for the plugin to be recognized by Xojo.

## Windows <span class="title-ref">plugin</span> placement

Since a number of items are implemented as internal <span class="title-ref">plugins</span>, you may well see a Libs folder even when you have not installed any external (or third party) <span class="title-ref">plugins</span>.

For 32-bit apps on Windows:

- GUI apps include XojoGUIFramework32.dll in the Libs folder
- All plugin DLLs appear in the Libs folder.

For 64-bit apps on Windows:

- Seveal DLLs now appear in the same folder as the exe itself. For more information about this refer to 64-bit Guidelines.
  - GUI apps include XojoGUIFramework64.dll in the same folder as the exe itself.
  - Visual Studio runtime DLLs appear in the same folder as the exe itself.
  - CEF3 (Chromium Embedded Framework) DLLs (and related files) appear in the same folder as the exe itself if your project is using the `DesktopHTMLViewer</api/user_interface/desktop/desktophtmlviewer>`.
- Other plugin DLLs appear in the Libs folder.

## Linux <span class="title-ref">plugin</span> placement

All <span class="title-ref">plugins</span> are included in the Libs folder. Since a number of items are implemented as internal <span class="title-ref">plugins</span>, you may well see a Lib folder even when you have not installed any external (or third party) <span class="title-ref">plugins</span>.

## Internal <span class="title-ref">plugins</span>

The items and classes listed in this section are currently implemented as internal <span class="title-ref">plugins</span> in Xojo. This is an implementation detail that is subject to change at any time.

Some high-level classes internally use functions implemented as internal <span class="title-ref">plugins</span>. For example, HTTPSocket and POP3Socket both use the MD5 function for authentication purpose thus causing the MD5 plugin to be included in the Libs folder.

- Appearance Pak
  - DesktopBevelButton
  - DesktopDisclosureTriangle
  - DesktopHTMLViewer
  - DesktopImageViewer
  - DesktopPopupArrow
  - DesktopProgressWheel
  - DesktopSegmentedButton
  - DesktopSeparator
  - DesktopUpDownArrows
- Game Input
  - GameInputDevice
  - GameInputManager
  - GameInputElement
- Internet Encodings
  - EncodeBase64
  - DecodeURLComponent
  - DecodeBase64
  - EncodeQuotedPrintable
  - DecodeQuotedPrintable
  - EncodeURLComponent
- Crypto
  - MD5
  - MD5Digest
  - Any Crypto-related features
- XojoScript
- <span class="title-ref">RegEx</span>
  - RegEx
  - RegExOptions
  - RegExException
  - RegExSearchPatternException
  - RegExMatch
- Shell
  - Shell
  - ShellNotRunningException
  - ShellNotAvailableException
- Sockets
  - SSLSocket
- XML
  - XMLAttributeList
  - XMLNodeList
  - XMLContentModel
  - XMLReader
  - XMLDocument
  - XMLReaderException
  - XMLDOMException
  - XMLXsltHandler
  - XMLElement
  - XMLNamespaces
  - Anything else that starts with "XML".
