
# IServerRecord interface

This interface extracts the servers installation files information from the \System folder which has a list of server installation files. That is each server installation file (with an INS extension) correspond to a `IServerRecord` itnerface.

```csharp
public interface IServerRecord
```

**Namespace:** DXP · **Assembly:** Altium.SDK.Interfaces

## Remarks

Since this `IServerRecord` interface is inside the Client object, invoke [`IClient.GetServerRecordCount`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IClient.md#getserverrecordcount) to get the number of server installation files, and then assign the result of [`IClient.GetServerRecord`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IClient.md#getserverrecord) to a `IServerRecord` variable where you can retrieve data associated with an installation file.

To find more information about each server module installed in Altium Designer, invoke the [`IClient.GetServerModule`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IClient.md#getservermodule) interface.

## Methods

| Method | Returns | Description |
| --- | --- | --- |
| [GetCommand](#getcommand) | [IServerProcess](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerProcess.md) | The method returns the [`IServerProcess`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerProcess.md) interface. |
| [GetCommandCount](#getcommandcount) | `int` | The method returns the number of commands (Process launchers) this server supports. |
| [GetCopyRight](#getcopyright) | `string` | The method returns the copyright string. |
| [GetDate](#getdate) | `string` | The method returns the date string associated with the server installation file. |
| [GetDescription](#getdescription) | `string` | The method returns the description string. |
| [GetDocumentFilter](#getdocumentfilter) | `void` |  |
| [GetDocumentFilterCount](#getdocumentfiltercount) | `int` |  |
| [GetExePath](#getexepath) | `string` | The method returns the path to the server file. |
| [GetGeneralInfo](#getgeneralinfo) | `string` | The method returns the general info string for the server record associated with a server. |
| [GetInsPath](#getinspath) | `string` | The method returns the path to the installation file. |
| [GetIsDocumentWizard](#getisdocumentwizard) | `bool` |  |
| [GetName](#getname) | `string` | The method returns the name of the server. |
| [GetPanelInfo](#getpanelinfo) | [IServerPanelInfo](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerPanelInfo.md) | The method returns the indexed panel information. |
| [GetPanelInfoByName](#getpanelinfobyname) | [IServerPanelInfo](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerPanelInfo.md) | The method returns the panel information interface by the panel name. |
| [GetPanelInfoCount](#getpanelinfocount) | `int` | The method returns the number of panels used for the server module. |
| [GetRCSFilePath](#getrcsfilepath) | `string` | The method returns the path to the resources file. |
| [GetServerFileExist](#getserverfileexist) | `bool` | The method returns the Boolean value whether the server file (with a DLL) exists or not. |
| [GetSupportsDDBRead](#getsupportsddbread) | `bool` |  |
| [GetSupportsDDBWrite](#getsupportsddbwrite) | `bool` |  |
| [GetSystemExtension](#getsystemextension) | `bool` | The method returns the file system extension string. |
| [GetVersion](#getversion) | `string` | The method returns the version string associated with the server installation file. |
| [GetWindowKind](#getwindowkind) | [IServerWindowKind](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerWindowKind.md) | The method returns the [`IServerWindowKind`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerWindowKind.md) interface. |
| [GetWindowKindByName](#getwindowkindbyname) | [IServerWindowKind](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerWindowKind.md) | The method returns the [`IServerWindowKind`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerWindowKind.md) interface depending on the DocumentKind Name parameter. |
| [GetWindowKindCount](#getwindowkindcount) | `int` | The method returns the number of document kinds the server supports. |

### GetCommand

The method returns the [`IServerProcess`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerProcess.md) interface. Used in conjunction with the [`GetCommandCount`](#getcommandcount) method.

```csharp
IServerProcess GetCommand(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [IServerProcess](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerProcess.md)

Extension method of `IServerRecordHelper` (`using DXP;`).

### GetCommandCount

The method returns the number of commands (Process launchers) this server supports. Used in conjunction with the [`GetCommand`](#getcommand) method

```csharp
int GetCommandCount();
```

**Returns:** `int`

### GetCopyRight

The method returns the copyright string.

```csharp
string GetCopyRight();
```

**Returns:** `string`

### GetDate

The method returns the date string associated with the server installation file.

```csharp
string GetDate();
```

**Returns:** `string`

### GetDescription

The method returns the description string.

```csharp
string GetDescription();
```

**Returns:** `string`

### GetDocumentFilter

*No description yet.*

```csharp
void GetDocumentFilter(int argIndex, out string argKind, out string argFilter);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |
| `argKind` | `string` | out |
| `argFilter` | `string` | out |

**Returns:** nothing (`void`)

### GetDocumentFilterCount

*No description yet.*

```csharp
int GetDocumentFilterCount();
```

**Returns:** `int`

### GetExePath

The method returns the path to the server file.

```csharp
string GetExePath();
```

**Returns:** `string`

### GetGeneralInfo

The method returns the general info string for the server record associated with a server.

```csharp
string GetGeneralInfo();
```

**Returns:** `string`

### GetInsPath

The method returns the path to the installation file.

```csharp
string GetInsPath();
```

**Returns:** `string`

### GetIsDocumentWizard

*No description yet.*

```csharp
bool GetIsDocumentWizard();
```

**Returns:** `bool`

### GetName

The method returns the name of the server.

```csharp
string GetName();
```

**Returns:** `string`

### GetPanelInfo

The method returns the indexed panel information. This is to be used in conjunction with the [`GetPanelInfoCount`](#getpanelinfocount) method.

```csharp
IServerPanelInfo GetPanelInfo(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [IServerPanelInfo](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerPanelInfo.md)

Extension method of `IServerRecordHelper` (`using DXP;`).

### GetPanelInfoByName

The method returns the panel information interface by the panel name.

```csharp
IServerPanelInfo GetPanelInfoByName(string argName);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argName` | `string` | value |

**Returns:** [IServerPanelInfo](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerPanelInfo.md)

Extension method of `IServerRecordHelper` (`using DXP;`).

### GetPanelInfoCount

The method returns the number of panels used for the server module. This is to be used in conjunction with the [`GetPanelInfo`](#getpanelinfo) method.

```csharp
int GetPanelInfoCount();
```

**Returns:** `int`

### GetRCSFilePath

The method returns the path to the resources file.

```csharp
string GetRCSFilePath();
```

**Returns:** `string`

### GetServerFileExist

The method returns the Boolean value whether the server file (with a DLL) exists or not.

```csharp
bool GetServerFileExist();
```

**Returns:** `bool`

### GetSupportsDDBRead

*No description yet.*

```csharp
bool GetSupportsDDBRead();
```

**Returns:** `bool`

### GetSupportsDDBWrite

*No description yet.*

```csharp
bool GetSupportsDDBWrite();
```

**Returns:** `bool`

### GetSystemExtension

The method returns the file system extension string.

```csharp
bool GetSystemExtension();
```

**Returns:** `bool`

### GetVersion

The method returns the version string associated with the server installation file.

```csharp
string GetVersion();
```

**Returns:** `string`

**Example:** Find the version of the Client server.

```csharp
using DXP;

IClient client = DXP.GlobalVars.Client;
string version = "";
int recordCount = client.GetServerRecordCount();
for (int i = 0; i < recordCount; i++)
{
    IServerRecord serverRecord = client.GetServerRecord(i);
    if (serverRecord.GetName() == "Client")
    {
        version = serverRecord.GetVersion();
        break;
    }
}
```

### GetWindowKind

The method returns the [`IServerWindowKind`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerWindowKind.md) interface. Used in conjunction with the [`GetWindowKindCount`](#getwindowkindcount) method.

```csharp
IServerWindowKind GetWindowKind(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [IServerWindowKind](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerWindowKind.md)

Extension method of `IServerRecordHelper` (`using DXP;`).

### GetWindowKindByName

The method returns the [`IServerWindowKind`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerWindowKind.md) interface depending on the DocumentKind Name parameter.

```csharp
IServerWindowKind GetWindowKindByName(string argName);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argName` | `string` | value |

**Returns:** [IServerWindowKind](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerWindowKind.md)

Extension method of `IServerRecordHelper` (`using DXP;`).

**See also:** [IServerWindowKind](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerWindowKind.md)

### GetWindowKindCount

The method returns the number of document kinds the server supports.

```csharp
int GetWindowKindCount();
```

**Returns:** `int`

## Returned by

[IClient.GetServerRecord](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IClient.md#getserverrecord), [IClient.GetServerRecordByFeature](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IClient.md#getserverrecordbyfeature), [IClient.GetServerRecordByName](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IClient.md#getserverrecordbyname), [IServerWindowKind.GetServerRecord](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerWindowKind.md#getserverrecord)
