Because some VSCT elements are optional, the .vsct file is more readable. If a Parent argument is not specified, Group_Undefined:0 will be implied. If an Icon argument is not specified, guidOfficeIcon:msotcidNoIcon will be implied. When a shortcut key is defined, the emulation, which is typically unused, is optional.
Bitmap items may now be embedded at compile time by specifying the location of the bitmap strip in the href argument. The bitmap strip is copied during the merge rather than extracted from the resources of the DLL. When an href argument is provided, the usedList argument becomes optional, and all slots in the bitmap strip are considered used.
All GUID and ID values must be defined by using symbolic names. These names may be defined in header files or in VSCT <Symbols> sections. The symbolic names must be local, included through <Include> elements, or referenced by <Extern> elements. A symbolic name is imported from a header file specified in an <Extern> element if it follows the simple pattern of #define SYMBOL VALUE. The value may be another symbol as long as that symbol was previously defined. GUID definitions must follow either the OLE or C++ format. ID values may be either decimal digits or hexadecimal digits that are preceded by 0x, as shown in the following lines:
{6D484634-E53D-4a2c-ADCB-55145C9362C8}
{ 0x6d484634, 0xe53d, 0x4a2c, { 0xad, 0xcb, 0x55, 0x14, 0x5c, 0x93, 0x62, 0xc8 } }
XML comments may be used, but round-trip graphical user interface (GUI) tools might discard them. The contents of <Annotation> elements are guaranteed to be maintained regardless of format.