Los manejadores de mensajes no pueden ser procedimientos sueltos, deben ser métodos de una clase. Cuando lo usas en un formulario:
Código Delphi
[-]
type
TForm1 = class(TForm)
private
procedure UMCreateFrame(var Msg: TUmCreateFrame); message UM_CREATEFRAME;
end;
lo estás declarando como método del formulario, que es una clase.
// Saludos