Writing the Version 2 Registration Resource File

Writing a version 2 registration resource file is similar to writing a standard registration resource file.

Context

All the variables required to write a standard registration resource file must be set. In addition:

Steps

  • Set resource_format_version to the value of RESOURCE_FORMAT_VERSION_2 defined in RegistryInfoV2.rh.

  • In the IMPLEMENTATION_INFO resource that declares the properties of a single implementation, set an additional member rom_only.

    rom_only set to 1 indicates the ROM-only implementation must be used.

    rom_only set to 0 indicates the ROM-only implementation can be overidden.

    Note:

    rom_only value must be set individually for all implementations declared in a version 2 registration resource file.

    A RAM plug-in can also use a version 2 registration resource file. However, the implementation must set rom_onlymember to 0. In case it is set to one the plug-in cannot be used.

Example

The following example gives a resource registration file for an implementation collection with two implementations. The first implementation cannot be overridden by a RAM-based plug-in and the second can be overridden by a RAM-based plug-in.

// 10009DB1.RSS
//
#include "RegistryInfoV2.rh"

RESOURCE REGISTRY_INFO theInfo
{
// resource_format_version must always be set as follows
resource_format_version = RESOURCE_FORMAT_VERSION_2;

// Normal plug-in parameters
dll_uid = 0x10009DB5;
interfaces = 
	{
	INTERFACE_INFO
		{
		interface_uid = 0x10009DC9;
		implementations = 
			{
			IMPLEMENTATION_INFO
				{
				implementation_uid = 0x10009DCA;
				version_no = 1;
				display_name = "Example Implementation - ROM-only ";
				default_data = "text/wml";
				opaque_data = "";
    
				// This implementation CANNOT be overridden by a RAM-based plug-in
				rom_only = 1;
				},
			IMPLEMENTATION_INFO
				{
				implementation_uid = 0x10009DCB;
				version_no = 1;
				display_name = "Example Implementation - not ROM-only ";
				default_data = "text/wml";
				opaque_data = "";

				// This implementation CAN be overridden by a RAM-based plug-in
				rom_only = 0;
				}
			};
		}
	};
}

Related tasks