using System;
namespace System.Runtime.InteropServices
{
/// Use instead.
// Token: 0x02000359 RID: 857
[Guid("0000000f-0000-0000-c000-000000000046")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[Obsolete]
[ComImport]
public interface UCOMIMoniker
{
/// Retrieves the class identifier (CLSID) of an object.
/// On successful return, contains the CLSID.
// Token: 0x0600235D RID: 9053
void GetClassID(out Guid pClassID);
/// Checks the object for changes since it was last saved.
/// An S_OKHRESULT value if the object has changed; otherwise, an S_FALSEHRESULT value.
// Token: 0x0600235E RID: 9054
[PreserveSig]
int IsDirty();
/// Initializes an object from the stream where it was previously saved.
/// Stream from which the object is loaded.
// Token: 0x0600235F RID: 9055
void Load(UCOMIStream pStm);
/// Saves an object to the specified stream.
/// The stream into which the object is saved.
/// Indicates whether to clear the modified flag after the save is complete.
// Token: 0x06002360 RID: 9056
void Save(UCOMIStream pStm, [MarshalAs(UnmanagedType.Bool)] bool fClearDirty);
/// Returns the size in bytes of the stream needed to save the object.
/// On successful return, contains a long value indicating the size in bytes of the stream needed to save this object.
// Token: 0x06002361 RID: 9057
void GetSizeMax(out long pcbSize);
/// Uses the moniker to bind to the object it identifies.
/// A reference to the IBindCtx interface on the bind context object used in this binding operation.
/// A reference to the moniker to the left of this moniker, if the moniker is part of a composite moniker.
/// The interface identifier (IID) of the interface the client intends to use to communicate with the object that the moniker identifies.
/// On successful return, reference to the interface requested by .
// Token: 0x06002362 RID: 9058
void BindToObject(UCOMIBindCtx pbc, UCOMIMoniker pmkToLeft, [In] ref Guid riidResult, [MarshalAs(UnmanagedType.Interface)] out object ppvResult);
/// Retrieves an interface pointer to the storage that contains the object identified by the moniker.
/// A reference to the IBindCtx interface on the bind context object used during this binding operation.
/// A reference to the moniker to the left of this moniker, if the moniker is part of a composite moniker.
/// The interface identifier (IID) of the storage interface requested.
/// On successful return, a reference to the interface requested by .
// Token: 0x06002363 RID: 9059
void BindToStorage(UCOMIBindCtx pbc, UCOMIMoniker pmkToLeft, [In] ref Guid riid, [MarshalAs(UnmanagedType.Interface)] out object ppvObj);
/// Returns a reduced moniker which is another moniker that refers to the same object as this moniker but can be bound with equal or greater efficiency.
/// A reference to the IBindCtx interface on the bind context to be used in this binding operation.
/// Specifies how far this moniker should be reduced.
/// A reference to the moniker to the left of this moniker.
/// On successful return, a reference to the reduced form of this moniker, which can be null if an error occurs or if this moniker is reduced to nothing.
// Token: 0x06002364 RID: 9060
void Reduce(UCOMIBindCtx pbc, int dwReduceHowFar, ref UCOMIMoniker ppmkToLeft, out UCOMIMoniker ppmkReduced);
/// Combines the current moniker with another moniker, creating a new composite moniker.
/// A reference to the IMoniker interface on the moniker to compose onto the end of this moniker.
/// If true, the caller requires a nongeneric composition, so the operation proceeds only if is a moniker class that this moniker can compose with in some way other than forming a generic composite. If false, the method can create a generic composite if necessary.
/// On successful return, a reference to the resulting composite moniker.
// Token: 0x06002365 RID: 9061
void ComposeWith(UCOMIMoniker pmkRight, [MarshalAs(UnmanagedType.Bool)] bool fOnlyIfNotGeneric, out UCOMIMoniker ppmkComposite);
/// Supplies a pointer to an enumerator that can enumerate the components of a composite moniker.
/// If true, enumerates the monikers from left to right. If false, enumerates from right to left.
/// On successful return, references the enumerator object for the moniker.
// Token: 0x06002366 RID: 9062
void Enum([MarshalAs(UnmanagedType.Bool)] bool fForward, out UCOMIEnumMoniker ppenumMoniker);
/// Compares this moniker with a specified moniker and indicates whether they are identical.
/// A reference to the moniker to be used for comparison.
// Token: 0x06002367 RID: 9063
void IsEqual(UCOMIMoniker pmkOtherMoniker);
/// Calculates a 32-bit integer using the internal state of the moniker.
/// On successful return, contains the hash value for this moniker.
// Token: 0x06002368 RID: 9064
void Hash(out int pdwHash);
/// Determines whether the object that is identified by this moniker is currently loaded and running.
/// A reference to the bind context to be used in this binding operation.
/// A reference to the moniker to the left of this moniker if this moniker is part of a composite.
/// A reference to the moniker most recently added to the Running Object Table.
// Token: 0x06002369 RID: 9065
void IsRunning(UCOMIBindCtx pbc, UCOMIMoniker pmkToLeft, UCOMIMoniker pmkNewlyRunning);
/// Provides a number representing the time the object identified by this moniker was last changed.
/// A reference to the bind context to be used in this binding operation.
/// A reference to the moniker to the left of this moniker, if the moniker is part of a composite moniker.
/// On successful return, contains the time of last change.
// Token: 0x0600236A RID: 9066
void GetTimeOfLastChange(UCOMIBindCtx pbc, UCOMIMoniker pmkToLeft, out FILETIME pFileTime);
/// Provides a moniker that, when composed to the right of this moniker or one of similar structure, composes to nothing.
/// On successful return, contains a moniker that is the inverse of this moniker.
// Token: 0x0600236B RID: 9067
void Inverse(out UCOMIMoniker ppmk);
/// Creates a new moniker based on the common prefix that this moniker shares with another moniker.
/// A reference to the IMoniker interface on another moniker to compare with this for a common prefix.
/// On successful return, contains the moniker that is the common prefix of this moniker and .
// Token: 0x0600236C RID: 9068
void CommonPrefixWith(UCOMIMoniker pmkOther, out UCOMIMoniker ppmkPrefix);
/// Supplies a moniker that, when appended to this moniker (or one with a similar structure), yields the specified moniker.
/// A reference to the moniker to which a relative path should be taken.
/// On successful return, reference to the relative moniker.
// Token: 0x0600236D RID: 9069
void RelativePathTo(UCOMIMoniker pmkOther, out UCOMIMoniker ppmkRelPath);
/// Gets the display name, which is a user-readable representation of this moniker.
/// A reference to the bind context to use in this operation.
/// A reference to the moniker to the left of this moniker, if the moniker is part of a composite moniker.
/// On successful return, contains the display name string.
// Token: 0x0600236E RID: 9070
void GetDisplayName(UCOMIBindCtx pbc, UCOMIMoniker pmkToLeft, [MarshalAs(UnmanagedType.LPWStr)] out string ppszDisplayName);
/// Reads as many characters of the specified display name as it understands and builds a moniker corresponding to the portion read.
/// A reference to the bind context to be used in this binding operation.
/// A reference to the moniker that has been built out of the display name up to this point.
/// A reference to the string containing the remaining display name to parse.
/// On successful return, contains the number of characters in that were consumed in this step.
/// Reference to the moniker that was built from .
// Token: 0x0600236F RID: 9071
void ParseDisplayName(UCOMIBindCtx pbc, UCOMIMoniker pmkToLeft, [MarshalAs(UnmanagedType.LPWStr)] string pszDisplayName, out int pchEaten, out UCOMIMoniker ppmkOut);
/// Indicates whether this moniker is of one of the system-supplied moniker classes.
/// A pointer to an integer that is one of the values from the MKSYS enumeration, and refers to one of the COM moniker classes.
// Token: 0x06002370 RID: 9072
void IsSystemMoniker(out int pdwMksys);
}
}