Inicializar una variable GUID: ¿Cómo?

Estoy intentando inicializar unGUID variable, pero no estoy seguro de que esta es la forma en que está destinado a hacerlo. Estoy especialmente confundido acerca de cómo almacenar los últimos 12 dígitos hexadecimales en la matriz de caracteres (¿Incluyo el carácter "-"?)

¿Cómo defino / inicializo una variable GUID?

bool TVManager::isMonitorDevice(GUID id)
{
    // Class GUID for a Monitor is: {4d36e96e-e325-11ce-bfc1-08002be10318}

    GUID monitorClassGuid;
    char* a                = "bfc1-08002be10318"; // do I store the "-" character?
    monitorClassGuid.Data1 = 0x4d36e96e;
    monitorClassGuid.Data2 = 0xe325;
    monitorClassGuid.Data3 = 0x11ce;
    monitorClassGuid.Data4 = a;

    return (bool(id == monitorClassGuid));
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta