e.g. Consider the following code:
<Group guid="guidFirstCommandCmdSet" id="MyMenuGroup" priority="0x0600">
<Parent guid="guidSHLMainMenu" id="IDM_VS_MENU_TOOLS"/>
</Group>
<Group guid="guidSecondCommandCmdSet" id="MyMenuGroup" priority="0x0600">
<Parent guid="guidSHLMainMenu" id="IDM_VS_MENU_TOOLS"/>
</Group>
Here, why do we need to define both GUID and ID? id="IDM_VS_MENU_TOOLS" refers to Tools menu in Visual Studio. What is the use of guid="guidSHLMainMenu"?
Also consider the following code:
<Button guid="guidSecondCommandCmdSet" id="cmdidSecondCommand" priority="2" type="Button">
<Parent guid="guidSecondCommandCmdSet" id="MyMenuGroup"/>
<Icon guid="guidImages" id="bmpPic2"/>
<Strings>
<ButtonText>XXX Command</ButtonText>
</Strings>
</Button>
I understand that the button has the id called "cmdidSecondCommand", but where would the GUID of the button be used? We are already defining the Parent container of the button in the next element.