P
US7716637B2ExpiredUtilityPatentIndex 55

Embedded macros

Assignee: MICROSOFT CORPPriority: Dec 15, 2005Filed: Dec 15, 2005Granted: May 11, 2010
Est. expiryDec 15, 2025(expired)· nominal 20-yr term from priority
Inventors:GETSCH TIMOTHY EBROTHERTON MICHAEL ALLENMARKIEWICZ MARCUS EWARDEN ANDREW M
G06F 9/45512
55
PatentIndex Score
4
Cited by
23
References
19
Claims

Abstract

An embedded macro establishes logic for object properties that define actions that execute when an event triggers. When an embedded macro is associated with an event, a regular event property value is set to an empty string and a shadow property associated with the regular event property is created. An application that supports embedded macros recognizes the empty regular property value as an indicator that a macro is embedded in the event. A binary representation of the macro is accessed from the shadow property and is executed when the event associated with the embedded macro triggers. An action safe list identifies trusted embedded macro actions. Embedded macro actions not included on the safe list are not executed such that untrusted actions are blocked from execution.

Claims

exact text as granted — not AI-modified
1. A computer-implemented method for evaluating a macro, comprising:
 providing a form having at least one object, wherein the at least one object includes a pregenerated event to cause an execution of the macro upon receiving a trigger to the pregenerated event; 
 receiving the trigger to the pregenerated event; 
 upon receiving the trigger of the pregenerated event, accessing a property sheet stored with the pregenerated event, wherein the property sheet includes a regular property field and a shadow property field; 
 when the regular property field includes a value, executing the macro via the value in the regular property field of the property sheet; and 
 when the regular property field includes an empty string, determining that the macro is a macro embedded in the pregenerated event and accessing a binary representation of the embedded macro in the shadow property field of the property sheet to cause a processor to load the embedded macro for evaluation. 
 
   
   
     2. The computer-implemented method of  claim 1 , further comprising causing a macro engine to evaluate the embedded macro prior to execution of the embedded macro. 
   
   
     3. The computer-implemented method of  claim 2 , wherein evaluating the embedded macro includes identifying trusted actions, wherein the trusted actions are executed. 
   
   
     4. The computer implemented method of  claim 2 , wherein evaluating the embedded macro includes identifying untrusted actions, wherein untrusted actions are evaluated to determine whether the untrusted action is safe by accessing a safe list. 
   
   
     5. The computer-implemented method of  claim 4 , wherein an identified untrusted action is a run command action, wherein the run command action is blocked when the run command action is determined unsafe. 
   
   
     6. The computer-implemented method of  claim 4 , wherein an identified untrusted action is a send object action, wherein the send object action is blocked when the send object action is determined unsafe. 
   
   
     7. The computer-implemented method of  claim 4 , wherein an identified untrusted action is an open report action, wherein the open report action is blocked when the open report action is determined unsafe. 
   
   
     8. The computer-implemented method of  claim 4 , wherein an identified untrusted action is an OutputTo action, wherein the OutputTo action is blocked when the OutputTo action is determined unsafe. 
   
   
     9. The computer-implemented method of  claim 4 , wherein an identified untrusted action is an output file specified action, wherein the output file specified action is blocked when the output specified action is determined unsafe. 
   
   
     10. A computer-readable storage medium having computer executable instructions for evaluating a macro, comprising:
 providing at least one object, wherein the at least one object includes an event to cause an execution of the macro upon receiving a trigger to the event; 
 receiving the trigger to the event; 
 upon receiving the trigger of the event, accessing a property sheet stored with the event, wherein the property sheet includes a regular property field and a shadow property field; 
 when the regular property field includes a value, executing the macro via the value in the regular property field of the property sheet; and 
 when the regular property field includes an empty string, determining that the macro is a macro embedded in the pregenerated event and accessing a binary representation of the embedded macro in the shadow property field of the property sheet to cause a processor to load the embedded macro for evaluation. 
 
   
   
     11. The computer-readable storage medium of  claim 10 , further comprising causing a macro engine to evaluate the embedded macro prior to execution of the embedded macro. 
   
   
     12. The computer-readable storage medium of  claim 11 , wherein evaluating the embedded macro includes identifying trusted actions, wherein the trusted actions are executed. 
   
   
     13. The computer-readable storage medium of  claim 11 , wherein evaluating the embedded macro includes identifying untrusted actions, wherein untrusted actions are evaluated to determine whether the untrusted action is safe by accessing a safe list. 
   
   
     14. The computer-readable storage medium of  claim 13 , wherein an identified untrusted action is at least one member of a group comprising: a run command action, a send object action, an open report action, an OutputTo action, and an output file specified action. 
   
   
     15. A system for evaluating a macro, comprising:
 a processor; and 
 a memory having computer executable instructions stored thereon, wherein the computer executable instructions are configured for: 
 providing at least one object, wherein the at least one object includes an event to cause an execution of the macro upon receiving a trigger to the event; 
 receiving the trigger to the event; 
 upon receiving the trigger of the event, accessing a property sheet stored with the event, wherein the property sheet includes a regular property field and a shadow property field; 
 when the regular property field includes a value, executing the macro via the value in the regular property field of the property sheet; and 
 when the regular property field includes an empty string, determining that the macro is a macro embedded in the pregenerated event and accessing a binary representation of the embedded macro in the shadow property field of the property sheet to cause a processor to load the embedded macro for evaluation. 
 
   
   
     16. The system of  claim 15 , further comprising causing a macro engine to evaluate the embedded macro prior to execution of the embedded macro. 
   
   
     17. The system of  claim 16 , wherein evaluating the embedded macro includes identifying trusted actions, wherein the trusted actions are executed. 
   
   
     18. The system of  claim 16 , wherein evaluating the embedded macro includes identifying untrusted actions, wherein untrusted actions are evaluated to determine whether the untrusted action is safe by accessing a safe list. 
   
   
     19. The system of  claim 18 , wherein an identified untrusted action is at least one member of a group comprising: a run command action, a send object action, an open report action, an OutputTo action, and an output file specified action.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.